fix(v5): preserve grayscale gradient masks
This commit is contained in:
@@ -385,6 +385,40 @@ class ApiTests(TestCase):
|
||||
self.assertEqual(noisy.data["channels"], 1)
|
||||
self.assertEqual(noisy.data["color_mode"], "L")
|
||||
|
||||
def test_gradient_mask_from_grayscale_can_combine_with_grayscale_state(self):
|
||||
upload = self.client.post("/api/images/", {"image": png_upload()}, format="multipart")
|
||||
s0_id = upload.data["states"][0]["state_id"]
|
||||
gray = self.client.post(
|
||||
f"/api/states/{s0_id}/operations/",
|
||||
{"operation": "rgb_to_gray", "params": {"red_weight": 0.299, "green_weight": 0.587, "blue_weight": 0.114}},
|
||||
format="json",
|
||||
)
|
||||
gradient = self.client.post(
|
||||
f"/api/states/{gray.data['state_id']}/operations/",
|
||||
{"operation": "gradient_abs_sum", "params": {"operator": "sobel"}},
|
||||
format="json",
|
||||
)
|
||||
|
||||
self.assertEqual(gradient.status_code, 201)
|
||||
self.assertEqual(gradient.data["channels"], 1)
|
||||
self.assertEqual(gradient.data["color_mode"], "L")
|
||||
|
||||
added = self.client.post(
|
||||
"/api/states/combine/",
|
||||
{"operation": "add", "state_ids": [gray.data["state_id"], gradient.data["state_id"]]},
|
||||
format="json",
|
||||
)
|
||||
subtracted = self.client.post(
|
||||
"/api/states/combine/",
|
||||
{"operation": "subtract", "state_ids": [gray.data["state_id"], gradient.data["state_id"]]},
|
||||
format="json",
|
||||
)
|
||||
|
||||
self.assertEqual(added.status_code, 201)
|
||||
self.assertEqual(added.data["channels"], 1)
|
||||
self.assertEqual(subtracted.status_code, 201)
|
||||
self.assertEqual(subtracted.data["channels"], 1)
|
||||
|
||||
@patch("processing.services.run_batch_job.delay")
|
||||
def test_batch_returns_job_id(self, delay):
|
||||
first = self.client.post("/api/images/", {"image": png_upload(name="a.png")}, format="multipart")
|
||||
|
||||
Reference in New Issue
Block a user