Represent tracing media as symbols and add pool thumbnails
This commit is contained in:
parent
551d572347
commit
17e1b4f403
49 changed files with 1777 additions and 864 deletions
|
|
@ -34,7 +34,7 @@ from django.core.management import call_command
|
|||
from django.test import TestCase, override_settings
|
||||
|
||||
from clips import blobs, extraction
|
||||
from clips.models import Analysis, Block, Blob, Clip, Footage, Leaf, Project, Revision, Sound, Source
|
||||
from clips.models import Analysis, Block, Blob, Clip, Footage, Image, Leaf, Project, Revision, Sound, Source
|
||||
|
||||
BLOB_DIR = tempfile.mkdtemp(prefix="arthur-test-blobs-")
|
||||
|
||||
|
|
@ -446,7 +446,7 @@ class DocumentTests(TestCase):
|
|||
self.assertEqual(5, len(response.json()["written"]))
|
||||
|
||||
loaded = self.client.get(f"/api/projects/{self.project.id}").json()
|
||||
self.assertEqual(5, loaded["schema_version"])
|
||||
self.assertEqual(6, loaded["schema_version"])
|
||||
self.assertEqual(1, len(loaded["clips"]))
|
||||
clip = loaded["clips"][0]
|
||||
self.assertEqual("c1", clip["cid"])
|
||||
|
|
@ -828,6 +828,32 @@ class UploadTests(TestCase):
|
|||
self.assertEqual(200, again.status_code)
|
||||
self.assertEqual(1, Sound.objects.count())
|
||||
|
||||
def test_an_uploaded_still_is_an_image_named_by_its_bytes(self):
|
||||
payload = png(17, 5)
|
||||
uploaded = self.client.post("/api/images", {
|
||||
"file": SimpleUploadedFile("sheet.png", payload, content_type="image/png")})
|
||||
self.assertEqual(201, uploaded.status_code, uploaded.content)
|
||||
image = uploaded.json()
|
||||
self.assertEqual(("sheet.png", 17, 5), (image["label"], image["width"], image["height"]))
|
||||
self.assertEqual(f"/blob/{image['digest']}", image["url"])
|
||||
self.assertEqual(payload, b"".join(self.client.get(image["url"]).streaming_content))
|
||||
self.assertEqual([image], self.client.get("/api/images").json()["images"])
|
||||
|
||||
again = self.client.post("/api/images", {
|
||||
"file": SimpleUploadedFile("again.png", payload, content_type="image/png")})
|
||||
self.assertEqual(200, again.status_code)
|
||||
self.assertEqual(1, Image.objects.count())
|
||||
|
||||
renamed = self.client.patch(f"/api/images/{image['id']}",
|
||||
json.dumps({"label": "model sheet"}),
|
||||
content_type="application/json")
|
||||
self.assertEqual("model sheet", renamed.json()["label"])
|
||||
|
||||
def test_a_file_that_is_not_a_picture_is_not_an_image(self):
|
||||
refused = self.client.post("/api/images", {
|
||||
"file": SimpleUploadedFile("notes.txt", b"not a picture", content_type="text/plain")})
|
||||
self.assertEqual(400, refused.status_code)
|
||||
|
||||
def test_a_file_without_audio_is_not_a_sound(self):
|
||||
refused = self.client.post("/api/sounds", {
|
||||
"file": SimpleUploadedFile("notes.txt", b"not audio", content_type="text/plain")})
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue