diff --git a/backend/api/__pycache__/__init__.cpython-313.pyc b/backend/api/__pycache__/__init__.cpython-313.pyc index 4337d29..f02d13b 100644 Binary files a/backend/api/__pycache__/__init__.cpython-313.pyc and b/backend/api/__pycache__/__init__.cpython-313.pyc differ diff --git a/backend/api/__pycache__/admin.cpython-313.pyc b/backend/api/__pycache__/admin.cpython-313.pyc index 72171d1..b0d80ae 100644 Binary files a/backend/api/__pycache__/admin.cpython-313.pyc and b/backend/api/__pycache__/admin.cpython-313.pyc differ diff --git a/backend/api/__pycache__/apps.cpython-313.pyc b/backend/api/__pycache__/apps.cpython-313.pyc index 594f0e0..8fba081 100644 Binary files a/backend/api/__pycache__/apps.cpython-313.pyc and b/backend/api/__pycache__/apps.cpython-313.pyc differ diff --git a/backend/api/__pycache__/backend.cpython-313.pyc b/backend/api/__pycache__/backend.cpython-313.pyc index dff8c7d..f4ac651 100644 Binary files a/backend/api/__pycache__/backend.cpython-313.pyc and b/backend/api/__pycache__/backend.cpython-313.pyc differ diff --git a/backend/api/__pycache__/models.cpython-313.pyc b/backend/api/__pycache__/models.cpython-313.pyc index e4392a0..09004bb 100644 Binary files a/backend/api/__pycache__/models.cpython-313.pyc and b/backend/api/__pycache__/models.cpython-313.pyc differ diff --git a/backend/api/__pycache__/serializers.cpython-313.pyc b/backend/api/__pycache__/serializers.cpython-313.pyc index c3aeadf..259e138 100644 Binary files a/backend/api/__pycache__/serializers.cpython-313.pyc and b/backend/api/__pycache__/serializers.cpython-313.pyc differ diff --git a/backend/api/__pycache__/urls.cpython-313.pyc b/backend/api/__pycache__/urls.cpython-313.pyc index e938ddb..3e6c101 100644 Binary files a/backend/api/__pycache__/urls.cpython-313.pyc and b/backend/api/__pycache__/urls.cpython-313.pyc differ diff --git a/backend/api/__pycache__/utils.cpython-313.pyc b/backend/api/__pycache__/utils.cpython-313.pyc index 85027c2..a77366d 100644 Binary files a/backend/api/__pycache__/utils.cpython-313.pyc and b/backend/api/__pycache__/utils.cpython-313.pyc differ diff --git a/backend/api/management/__pycache__/__init__.cpython-313.pyc b/backend/api/management/__pycache__/__init__.cpython-313.pyc index 07bfd4a..0f39071 100644 Binary files a/backend/api/management/__pycache__/__init__.cpython-313.pyc and b/backend/api/management/__pycache__/__init__.cpython-313.pyc differ diff --git a/backend/api/management/commands/__pycache__/__init__.cpython-313.pyc b/backend/api/management/commands/__pycache__/__init__.cpython-313.pyc index 3ab3706..7e3e2fe 100644 Binary files a/backend/api/management/commands/__pycache__/__init__.cpython-313.pyc and b/backend/api/management/commands/__pycache__/__init__.cpython-313.pyc differ diff --git a/backend/api/migrations/0025_alter_sign_id_alter_video_id.py b/backend/api/migrations/0025_alter_sign_id_alter_video_id.py new file mode 100644 index 0000000..4ce43a7 --- /dev/null +++ b/backend/api/migrations/0025_alter_sign_id_alter_video_id.py @@ -0,0 +1,24 @@ +# Generated by Django 5.2.5 on 2025-10-30 18:42 + +import uuid +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('api', '0024_alter_sign_id_alter_video_id'), + ] + + operations = [ + migrations.AlterField( + model_name='sign', + name='id', + field=models.UUIDField(default=uuid.UUID('cc38ed65-ae25-498a-9d5f-04bc81c0bb6a'), editable=False, primary_key=True, serialize=False, unique=True), + ), + migrations.AlterField( + model_name='video', + name='id', + field=models.UUIDField(default=uuid.UUID('75b5f668-9053-4e99-817a-fe592d8f973f'), editable=False, primary_key=True, serialize=False, unique=True), + ), + ] diff --git a/backend/api/migrations/__pycache__/0001_initial.cpython-313.pyc b/backend/api/migrations/__pycache__/0001_initial.cpython-313.pyc index a2c8888..42a9bfa 100644 Binary files a/backend/api/migrations/__pycache__/0001_initial.cpython-313.pyc and b/backend/api/migrations/__pycache__/0001_initial.cpython-313.pyc differ diff --git a/backend/api/migrations/__pycache__/0002_alter_sign_id_alter_video_id.cpython-313.pyc b/backend/api/migrations/__pycache__/0002_alter_sign_id_alter_video_id.cpython-313.pyc index a345b92..ff9116a 100644 Binary files a/backend/api/migrations/__pycache__/0002_alter_sign_id_alter_video_id.cpython-313.pyc and b/backend/api/migrations/__pycache__/0002_alter_sign_id_alter_video_id.cpython-313.pyc differ diff --git a/backend/api/migrations/__pycache__/0003_alter_customuser_email_alter_sign_id_alter_video_id.cpython-313.pyc b/backend/api/migrations/__pycache__/0003_alter_customuser_email_alter_sign_id_alter_video_id.cpython-313.pyc index 9abdefb..0057600 100644 Binary files a/backend/api/migrations/__pycache__/0003_alter_customuser_email_alter_sign_id_alter_video_id.cpython-313.pyc and b/backend/api/migrations/__pycache__/0003_alter_customuser_email_alter_sign_id_alter_video_id.cpython-313.pyc differ diff --git a/backend/api/migrations/__pycache__/0004_alter_sign_id_alter_video_id.cpython-313.pyc b/backend/api/migrations/__pycache__/0004_alter_sign_id_alter_video_id.cpython-313.pyc index c084d0b..133c040 100644 Binary files a/backend/api/migrations/__pycache__/0004_alter_sign_id_alter_video_id.cpython-313.pyc and b/backend/api/migrations/__pycache__/0004_alter_sign_id_alter_video_id.cpython-313.pyc differ diff --git a/backend/api/migrations/__pycache__/0005_alter_sign_id_alter_video_id.cpython-313.pyc b/backend/api/migrations/__pycache__/0005_alter_sign_id_alter_video_id.cpython-313.pyc index 2ab2df5..f5cc388 100644 Binary files a/backend/api/migrations/__pycache__/0005_alter_sign_id_alter_video_id.cpython-313.pyc and b/backend/api/migrations/__pycache__/0005_alter_sign_id_alter_video_id.cpython-313.pyc differ diff --git a/backend/api/migrations/__pycache__/0006_alter_sign_id_alter_video_id.cpython-313.pyc b/backend/api/migrations/__pycache__/0006_alter_sign_id_alter_video_id.cpython-313.pyc index 3890367..ef5953e 100644 Binary files a/backend/api/migrations/__pycache__/0006_alter_sign_id_alter_video_id.cpython-313.pyc and b/backend/api/migrations/__pycache__/0006_alter_sign_id_alter_video_id.cpython-313.pyc differ diff --git a/backend/api/migrations/__pycache__/0007_remove_customuser_username_and_more.cpython-313.pyc b/backend/api/migrations/__pycache__/0007_remove_customuser_username_and_more.cpython-313.pyc index 2b58b77..5c30441 100644 Binary files a/backend/api/migrations/__pycache__/0007_remove_customuser_username_and_more.cpython-313.pyc and b/backend/api/migrations/__pycache__/0007_remove_customuser_username_and_more.cpython-313.pyc differ diff --git a/backend/api/migrations/__pycache__/0008_alter_sign_id_alter_video_id.cpython-313.pyc b/backend/api/migrations/__pycache__/0008_alter_sign_id_alter_video_id.cpython-313.pyc index 90730cd..fece724 100644 Binary files a/backend/api/migrations/__pycache__/0008_alter_sign_id_alter_video_id.cpython-313.pyc and b/backend/api/migrations/__pycache__/0008_alter_sign_id_alter_video_id.cpython-313.pyc differ diff --git a/backend/api/migrations/__pycache__/0009_alter_sign_id_alter_video_id.cpython-313.pyc b/backend/api/migrations/__pycache__/0009_alter_sign_id_alter_video_id.cpython-313.pyc index c0ea064..7af3afb 100644 Binary files a/backend/api/migrations/__pycache__/0009_alter_sign_id_alter_video_id.cpython-313.pyc and b/backend/api/migrations/__pycache__/0009_alter_sign_id_alter_video_id.cpython-313.pyc differ diff --git a/backend/api/migrations/__pycache__/0010_alter_sign_id_alter_video_id.cpython-313.pyc b/backend/api/migrations/__pycache__/0010_alter_sign_id_alter_video_id.cpython-313.pyc index 0e777fb..4872476 100644 Binary files a/backend/api/migrations/__pycache__/0010_alter_sign_id_alter_video_id.cpython-313.pyc and b/backend/api/migrations/__pycache__/0010_alter_sign_id_alter_video_id.cpython-313.pyc differ diff --git a/backend/api/migrations/__pycache__/0011_alter_sign_id_alter_video_id.cpython-313.pyc b/backend/api/migrations/__pycache__/0011_alter_sign_id_alter_video_id.cpython-313.pyc index 7bd2fb5..827cab9 100644 Binary files a/backend/api/migrations/__pycache__/0011_alter_sign_id_alter_video_id.cpython-313.pyc and b/backend/api/migrations/__pycache__/0011_alter_sign_id_alter_video_id.cpython-313.pyc differ diff --git a/backend/api/migrations/__pycache__/0012_alter_sign_id_alter_video_id.cpython-313.pyc b/backend/api/migrations/__pycache__/0012_alter_sign_id_alter_video_id.cpython-313.pyc index 65fb31b..10162bb 100644 Binary files a/backend/api/migrations/__pycache__/0012_alter_sign_id_alter_video_id.cpython-313.pyc and b/backend/api/migrations/__pycache__/0012_alter_sign_id_alter_video_id.cpython-313.pyc differ diff --git a/backend/api/migrations/__pycache__/0013_alter_sign_id_alter_video_id.cpython-313.pyc b/backend/api/migrations/__pycache__/0013_alter_sign_id_alter_video_id.cpython-313.pyc index 1c1169a..a15d273 100644 Binary files a/backend/api/migrations/__pycache__/0013_alter_sign_id_alter_video_id.cpython-313.pyc and b/backend/api/migrations/__pycache__/0013_alter_sign_id_alter_video_id.cpython-313.pyc differ diff --git a/backend/api/migrations/__pycache__/0014_alter_sign_id_alter_video_id.cpython-313.pyc b/backend/api/migrations/__pycache__/0014_alter_sign_id_alter_video_id.cpython-313.pyc index 9969ddf..7f89498 100644 Binary files a/backend/api/migrations/__pycache__/0014_alter_sign_id_alter_video_id.cpython-313.pyc and b/backend/api/migrations/__pycache__/0014_alter_sign_id_alter_video_id.cpython-313.pyc differ diff --git a/backend/api/migrations/__pycache__/0015_alter_sign_id_alter_video_id.cpython-313.pyc b/backend/api/migrations/__pycache__/0015_alter_sign_id_alter_video_id.cpython-313.pyc index 6ce4e00..9381e08 100644 Binary files a/backend/api/migrations/__pycache__/0015_alter_sign_id_alter_video_id.cpython-313.pyc and b/backend/api/migrations/__pycache__/0015_alter_sign_id_alter_video_id.cpython-313.pyc differ diff --git a/backend/api/migrations/__pycache__/0016_alter_sign_id_alter_video_id.cpython-313.pyc b/backend/api/migrations/__pycache__/0016_alter_sign_id_alter_video_id.cpython-313.pyc index 5e31721..917c98d 100644 Binary files a/backend/api/migrations/__pycache__/0016_alter_sign_id_alter_video_id.cpython-313.pyc and b/backend/api/migrations/__pycache__/0016_alter_sign_id_alter_video_id.cpython-313.pyc differ diff --git a/backend/api/migrations/__pycache__/0017_alter_sign_id_alter_video_id.cpython-313.pyc b/backend/api/migrations/__pycache__/0017_alter_sign_id_alter_video_id.cpython-313.pyc index 81e1fc4..ccd30f9 100644 Binary files a/backend/api/migrations/__pycache__/0017_alter_sign_id_alter_video_id.cpython-313.pyc and b/backend/api/migrations/__pycache__/0017_alter_sign_id_alter_video_id.cpython-313.pyc differ diff --git a/backend/api/migrations/__pycache__/0018_video_media_filename_alter_sign_id_alter_video_id.cpython-313.pyc b/backend/api/migrations/__pycache__/0018_video_media_filename_alter_sign_id_alter_video_id.cpython-313.pyc index 9bfd45d..d0ed657 100644 Binary files a/backend/api/migrations/__pycache__/0018_video_media_filename_alter_sign_id_alter_video_id.cpython-313.pyc and b/backend/api/migrations/__pycache__/0018_video_media_filename_alter_sign_id_alter_video_id.cpython-313.pyc differ diff --git a/backend/api/migrations/__pycache__/0019_alter_sign_id_alter_video_id_and_more.cpython-313.pyc b/backend/api/migrations/__pycache__/0019_alter_sign_id_alter_video_id_and_more.cpython-313.pyc index f032082..64dfe6e 100644 Binary files a/backend/api/migrations/__pycache__/0019_alter_sign_id_alter_video_id_and_more.cpython-313.pyc and b/backend/api/migrations/__pycache__/0019_alter_sign_id_alter_video_id_and_more.cpython-313.pyc differ diff --git a/backend/api/migrations/__pycache__/0020_alter_sign_id_alter_video_id.cpython-313.pyc b/backend/api/migrations/__pycache__/0020_alter_sign_id_alter_video_id.cpython-313.pyc index ea5b907..4910478 100644 Binary files a/backend/api/migrations/__pycache__/0020_alter_sign_id_alter_video_id.cpython-313.pyc and b/backend/api/migrations/__pycache__/0020_alter_sign_id_alter_video_id.cpython-313.pyc differ diff --git a/backend/api/migrations/__pycache__/0021_alter_sign_id_alter_video_id.cpython-313.pyc b/backend/api/migrations/__pycache__/0021_alter_sign_id_alter_video_id.cpython-313.pyc index f577066..01bcc51 100644 Binary files a/backend/api/migrations/__pycache__/0021_alter_sign_id_alter_video_id.cpython-313.pyc and b/backend/api/migrations/__pycache__/0021_alter_sign_id_alter_video_id.cpython-313.pyc differ diff --git a/backend/api/migrations/__pycache__/0022_alter_sign_id_alter_video_id.cpython-313.pyc b/backend/api/migrations/__pycache__/0022_alter_sign_id_alter_video_id.cpython-313.pyc index 9033bfe..f84a59b 100644 Binary files a/backend/api/migrations/__pycache__/0022_alter_sign_id_alter_video_id.cpython-313.pyc and b/backend/api/migrations/__pycache__/0022_alter_sign_id_alter_video_id.cpython-313.pyc differ diff --git a/backend/api/migrations/__pycache__/0023_alter_sign_id_alter_video_id.cpython-313.pyc b/backend/api/migrations/__pycache__/0023_alter_sign_id_alter_video_id.cpython-313.pyc index 28ad15e..8a94b7d 100644 Binary files a/backend/api/migrations/__pycache__/0023_alter_sign_id_alter_video_id.cpython-313.pyc and b/backend/api/migrations/__pycache__/0023_alter_sign_id_alter_video_id.cpython-313.pyc differ diff --git a/backend/api/migrations/__pycache__/0024_alter_sign_id_alter_video_id.cpython-313.pyc b/backend/api/migrations/__pycache__/0024_alter_sign_id_alter_video_id.cpython-313.pyc index 410f343..19a0e78 100644 Binary files a/backend/api/migrations/__pycache__/0024_alter_sign_id_alter_video_id.cpython-313.pyc and b/backend/api/migrations/__pycache__/0024_alter_sign_id_alter_video_id.cpython-313.pyc differ diff --git a/backend/api/migrations/__pycache__/0025_alter_sign_id_alter_video_id.cpython-313.pyc b/backend/api/migrations/__pycache__/0025_alter_sign_id_alter_video_id.cpython-313.pyc new file mode 100644 index 0000000..2de05a3 Binary files /dev/null and b/backend/api/migrations/__pycache__/0025_alter_sign_id_alter_video_id.cpython-313.pyc differ diff --git a/backend/api/migrations/__pycache__/__init__.cpython-313.pyc b/backend/api/migrations/__pycache__/__init__.cpython-313.pyc index 6f15fdc..3b0f711 100644 Binary files a/backend/api/migrations/__pycache__/__init__.cpython-313.pyc and b/backend/api/migrations/__pycache__/__init__.cpython-313.pyc differ diff --git a/backend/api/tests/__pycache__/__init__.cpython-313.pyc b/backend/api/tests/__pycache__/__init__.cpython-313.pyc index 3e42e68..e9667d6 100644 Binary files a/backend/api/tests/__pycache__/__init__.cpython-313.pyc and b/backend/api/tests/__pycache__/__init__.cpython-313.pyc differ diff --git a/backend/api/tests/unit/__pycache__/__init__.cpython-313.pyc b/backend/api/tests/unit/__pycache__/__init__.cpython-313.pyc index 47ac495..17f1c09 100644 Binary files a/backend/api/tests/unit/__pycache__/__init__.cpython-313.pyc and b/backend/api/tests/unit/__pycache__/__init__.cpython-313.pyc differ diff --git a/backend/api/tests/unit/__pycache__/test_backend.cpython-313.pyc b/backend/api/tests/unit/__pycache__/test_backend.cpython-313.pyc index 530bbce..ef68d0f 100644 Binary files a/backend/api/tests/unit/__pycache__/test_backend.cpython-313.pyc and b/backend/api/tests/unit/__pycache__/test_backend.cpython-313.pyc differ diff --git a/backend/api/tests/unit/__pycache__/test_models.cpython-313.pyc b/backend/api/tests/unit/__pycache__/test_models.cpython-313.pyc index c7a6a63..8934060 100644 Binary files a/backend/api/tests/unit/__pycache__/test_models.cpython-313.pyc and b/backend/api/tests/unit/__pycache__/test_models.cpython-313.pyc differ diff --git a/backend/api/tests/unit/__pycache__/test_serializers.cpython-313.pyc b/backend/api/tests/unit/__pycache__/test_serializers.cpython-313.pyc index f5bf97e..371e03f 100644 Binary files a/backend/api/tests/unit/__pycache__/test_serializers.cpython-313.pyc and b/backend/api/tests/unit/__pycache__/test_serializers.cpython-313.pyc differ diff --git a/backend/api/tests/unit/__pycache__/test_urls.cpython-313.pyc b/backend/api/tests/unit/__pycache__/test_urls.cpython-313.pyc index ff23876..0990628 100644 Binary files a/backend/api/tests/unit/__pycache__/test_urls.cpython-313.pyc and b/backend/api/tests/unit/__pycache__/test_urls.cpython-313.pyc differ diff --git a/backend/api/tests/unit/__pycache__/test_utils.cpython-313.pyc b/backend/api/tests/unit/__pycache__/test_utils.cpython-313.pyc index 5c949ed..e98448e 100644 Binary files a/backend/api/tests/unit/__pycache__/test_utils.cpython-313.pyc and b/backend/api/tests/unit/__pycache__/test_utils.cpython-313.pyc differ diff --git a/backend/api/tests/unit/test_urls.py b/backend/api/tests/unit/test_urls.py index f741cf5..dc0fef0 100644 --- a/backend/api/tests/unit/test_urls.py +++ b/backend/api/tests/unit/test_urls.py @@ -1,24 +1,57 @@ from django.test import TestCase, Client import importlib +from django.contrib.auth import get_user_model class TestAuthUrls(TestCase): def setUp(self) -> None: self.client = Client() + self.email_teste = "login@teste.com" + self.senha_teste = "SenhaForte@123" + self.user = get_user_model().objects.create_user( + email=self.email_teste, + password=self.senha_teste, + first_name="Usuario", + last_name="Login" + ) def test_if_is_running(self) -> None: self.assertTrue(True) - def test_if_auth_token_route_exists(self) -> None: - response = self.client.post("/api/auth/login") - self.assertEqual(response.status_code, 400) + def test_if_auth_token_route_blocks_get_method(self) -> None: + response = self.client.get("/api/auth/login") + self.assertEqual(response.status_code, 405) + + def test_login_sucesso_retorna_tokens(self) -> None: + login_data = { + "email": self.email_teste, + "password": self.senha_teste + } + response = self.client.post("/api/auth/login", data=login_data) - def test_if_auth_token_route_returns_not_found(self) -> None: - response = self.client.get("/api/auth/login/") - self.assertEqual(response.status_code, 404) + self.assertEqual(response.status_code, 200) - def test_if_auth_token_return_200_sucess_in_message(self) -> None: - #response = self.client.get|() - pass + response_data = response.json() + self.assertIn("access", response_data) + self.assertIn("refresh", response_data) + self.assertEqual(response_data["email"], self.email_teste) + self.assertTrue("user_id" in response_data) + + def test_login_falha_com_senha_errada(self) -> None: + login_data_errado = { + "email": self.email_teste, + "password": "SENHA_ERRADA" + } + response = self.client.post("/api/auth/login", data=login_data_errado) + self.assertIn(response.status_code, [400, 401]) + + def test_login_falha_com_usuario_inexistente(self) -> None: + login_data_inexistente = { + "email": "naoexiste@teste.com", + "password": "qualquersenha" + } + response = self.client.post("/api/auth/login", data=login_data_inexistente) + self.assertIn(response.status_code, [400, 401]) + class TestUserUrls(TestCase): def setUp(self) -> None: self.client = Client() @@ -51,4 +84,37 @@ def test_if_single_user_route_exists(self) -> None: if path.name == "singular_user": exists = True break - self.assertTrue(exists) \ No newline at end of file + self.assertTrue(exists) + + def test_se_o_cadastro_de_usuario_funciona(self) -> None: + user_data = { + "email": "usuario_novo@teste.com", + "password": "SenhaForte@123", + "first_name": "Tester", + "last_name": "QA" + } + user_count_before = get_user_model().objects.count() + response = self.client.post("/api/users", data=user_data) + + self.assertEqual(response.status_code, 201) + user_count_after = get_user_model().objects.count() + self.assertEqual(user_count_after, user_count_before + 1) + response_data = response.json() + self.assertEqual(response_data['user']['email'], user_data['email']) + + def test_se_cadastro_falha_com_email_duplicado(self) -> None: + get_user_model().objects.create_user( + email="email.duplicado@teste.com", + password="123", + first_name="Usuario Original" + ) + user_data_duplicada = { + "email": "email.duplicado@teste.com", + "password": "OutraSenha@123", + "first_name": "Tentativa de Clone" + } + user_count_before = get_user_model().objects.count() + response = self.client.post("/api/users", data=user_data_duplicada) + self.assertEqual(response.status_code, 400) + user_count_after = get_user_model().objects.count() + self.assertEqual(user_count_after, user_count_before) \ No newline at end of file diff --git a/backend/api/tests/unit/test_utils.py b/backend/api/tests/unit/test_utils.py index e69de29..310766e 100644 --- a/backend/api/tests/unit/test_utils.py +++ b/backend/api/tests/unit/test_utils.py @@ -0,0 +1,49 @@ +from django.test import TestCase +from django.core.files.uploadedfile import SimpleUploadedFile +from api.utils import verify_video_file_extension_is_ok + +class TestUtilsVideoExtension(TestCase): + + def test_com_extensao_valida_deve_retornar_true(self): + """ + Caso de Teste (Caminho Feliz): + Verifica se um arquivo com uma extensão de vídeo válida (.mp4) retorna True. + """ + video_file = SimpleUploadedFile("video_teste.mp4", b"file_content") + + resultado = verify_video_file_extension_is_ok(video_file) + + self.assertTrue(resultado) + + def test_com_extensao_invalida_deve_retornar_false(self): + """ + Caso de Teste (Caminho Triste): + Verifica se um arquivo de texto (.txt) retorna False. + """ + text_file = SimpleUploadedFile("documento.txt", b"file_content") + + resultado = verify_video_file_extension_is_ok(text_file) + + self.assertFalse(resultado) + + def test_com_extensao_maiuscula_deve_retornar_true(self): + """ + Caso de Teste (Borda): + Verifica se a função ignora o case (maiúsculas/minúsculas) da extensão. + """ + video_file_upper = SimpleUploadedFile("video_upper.MP4", b"file_content") + + resultado = verify_video_file_extension_is_ok(video_file_upper) + + self.assertTrue(resultado) + + def test_sem_extensao_deve_retornar_false(self): + """ + Caso de Teste (Borda): + Verifica o comportamento com um arquivo sem extensão. + """ + file_no_ext = SimpleUploadedFile("arquivo_sem_extensao", b"file_content") + + resultado = verify_video_file_extension_is_ok(file_no_ext) + + self.assertFalse(resultado) \ No newline at end of file diff --git a/backend/api/tests/unit/views/__pycache__/__init__.cpython-313.pyc b/backend/api/tests/unit/views/__pycache__/__init__.cpython-313.pyc index acd4e34..d69b6cf 100644 Binary files a/backend/api/tests/unit/views/__pycache__/__init__.cpython-313.pyc and b/backend/api/tests/unit/views/__pycache__/__init__.cpython-313.pyc differ diff --git a/backend/api/tests/unit/views/__pycache__/test_auth_view.cpython-313.pyc b/backend/api/tests/unit/views/__pycache__/test_auth_view.cpython-313.pyc index 2f61e53..ccc83fe 100644 Binary files a/backend/api/tests/unit/views/__pycache__/test_auth_view.cpython-313.pyc and b/backend/api/tests/unit/views/__pycache__/test_auth_view.cpython-313.pyc differ diff --git a/backend/api/tests/unit/views/__pycache__/test_sign_views.cpython-313.pyc b/backend/api/tests/unit/views/__pycache__/test_sign_views.cpython-313.pyc index c339ea1..6cf9288 100644 Binary files a/backend/api/tests/unit/views/__pycache__/test_sign_views.cpython-313.pyc and b/backend/api/tests/unit/views/__pycache__/test_sign_views.cpython-313.pyc differ diff --git a/backend/api/tests/unit/views/__pycache__/test_user_views.cpython-313.pyc b/backend/api/tests/unit/views/__pycache__/test_user_views.cpython-313.pyc index 2d1fc9f..9dac6c8 100644 Binary files a/backend/api/tests/unit/views/__pycache__/test_user_views.cpython-313.pyc and b/backend/api/tests/unit/views/__pycache__/test_user_views.cpython-313.pyc differ diff --git a/backend/api/tests/unit/views/__pycache__/test_video_views.cpython-313.pyc b/backend/api/tests/unit/views/__pycache__/test_video_views.cpython-313.pyc index 891f43a..77e8e1a 100644 Binary files a/backend/api/tests/unit/views/__pycache__/test_video_views.cpython-313.pyc and b/backend/api/tests/unit/views/__pycache__/test_video_views.cpython-313.pyc differ diff --git a/backend/api/views/__pycache__/__init__.cpython-313.pyc b/backend/api/views/__pycache__/__init__.cpython-313.pyc index 504193f..a86458a 100644 Binary files a/backend/api/views/__pycache__/__init__.cpython-313.pyc and b/backend/api/views/__pycache__/__init__.cpython-313.pyc differ diff --git a/backend/api/views/__pycache__/auth_views.cpython-313.pyc b/backend/api/views/__pycache__/auth_views.cpython-313.pyc index 26dfe29..b488b00 100644 Binary files a/backend/api/views/__pycache__/auth_views.cpython-313.pyc and b/backend/api/views/__pycache__/auth_views.cpython-313.pyc differ diff --git a/backend/api/views/__pycache__/sign_views.cpython-313.pyc b/backend/api/views/__pycache__/sign_views.cpython-313.pyc index 5a5a5db..81d87d3 100644 Binary files a/backend/api/views/__pycache__/sign_views.cpython-313.pyc and b/backend/api/views/__pycache__/sign_views.cpython-313.pyc differ diff --git a/backend/api/views/__pycache__/user_views.cpython-313.pyc b/backend/api/views/__pycache__/user_views.cpython-313.pyc index 80596f4..e52ef4a 100644 Binary files a/backend/api/views/__pycache__/user_views.cpython-313.pyc and b/backend/api/views/__pycache__/user_views.cpython-313.pyc differ diff --git a/backend/api/views/__pycache__/video_views.cpython-313.pyc b/backend/api/views/__pycache__/video_views.cpython-313.pyc index 67c0491..75e6911 100644 Binary files a/backend/api/views/__pycache__/video_views.cpython-313.pyc and b/backend/api/views/__pycache__/video_views.cpython-313.pyc differ diff --git a/backend/backend/__pycache__/__init__.cpython-313.pyc b/backend/backend/__pycache__/__init__.cpython-313.pyc index 781ffde..a10a66b 100644 Binary files a/backend/backend/__pycache__/__init__.cpython-313.pyc and b/backend/backend/__pycache__/__init__.cpython-313.pyc differ diff --git a/backend/backend/__pycache__/settings.cpython-313.pyc b/backend/backend/__pycache__/settings.cpython-313.pyc index 7b9fa1b..23630b0 100644 Binary files a/backend/backend/__pycache__/settings.cpython-313.pyc and b/backend/backend/__pycache__/settings.cpython-313.pyc differ diff --git a/backend/backend/__pycache__/urls.cpython-313.pyc b/backend/backend/__pycache__/urls.cpython-313.pyc index c50b3c9..1b97fa6 100644 Binary files a/backend/backend/__pycache__/urls.cpython-313.pyc and b/backend/backend/__pycache__/urls.cpython-313.pyc differ diff --git a/backend/backend/__pycache__/wsgi.cpython-313.pyc b/backend/backend/__pycache__/wsgi.cpython-313.pyc index 785ef2d..a1291f9 100644 Binary files a/backend/backend/__pycache__/wsgi.cpython-313.pyc and b/backend/backend/__pycache__/wsgi.cpython-313.pyc differ diff --git a/backend/db.sqlite3 b/backend/db.sqlite3 index 3989631..1ed686f 100644 Binary files a/backend/db.sqlite3 and b/backend/db.sqlite3 differ