API: Upload new version of an extension #138

Merged
Dalai Felinto merged 12 commits from tokens-version-api into main 2024-05-27 16:18:05 +02:00
Showing only changes of commit 81d4bfd3b9 - Show all commits

View File

@ -8,7 +8,7 @@ from common.tests.factories.users import UserFactory
from common.tests.factories.extensions import create_approved_version from common.tests.factories.extensions import create_approved_version
from extensions.models import Version from extensions.models import Version
from tokens.models import UserToken from apitokens.models import UserToken
TEST_FILES_DIR = Path(__file__).resolve().parent / 'files' TEST_FILES_DIR = Path(__file__).resolve().parent / 'files'
@ -17,7 +17,12 @@ TEST_FILES_DIR = Path(__file__).resolve().parent / 'files'
class VersionUploadAPITest(APITestCase): class VersionUploadAPITest(APITestCase):
def setUp(self): def setUp(self):
self.user = UserFactory() self.user = UserFactory()
self.token = UserToken.objects.create(user=self.user) self.token_key = UserToken.generate_token_key()
self.token = UserToken.objects.create(
user=self.user,
token_prefix=UserToken.generate_token_prefix(self.token_key),
token_hash=UserToken.generate_hash(self.token_key),
)
self.client = APIClient() self.client = APIClient()
self.version = create_approved_version( self.version = create_approved_version(
@ -44,7 +49,7 @@ class VersionUploadAPITest(APITestCase):
'release_notes': 'These are the release notes', 'release_notes': 'These are the release notes',
}, },
format='multipart', format='multipart',
HTTP_AUTHORIZATION=f'Bearer {self.token.token}', HTTP_AUTHORIZATION=f'Bearer {self.token_key}',
) )
self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
@ -64,7 +69,7 @@ class VersionUploadAPITest(APITestCase):
'release_notes': 'These are the release notes', 'release_notes': 'These are the release notes',
}, },
format='multipart', format='multipart',
HTTP_AUTHORIZATION=f'Bearer {self.token.token}', HTTP_AUTHORIZATION=f'Bearer {self.token_key}',
) )
self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND) self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND)
@ -81,9 +86,8 @@ class VersionUploadAPITest(APITestCase):
'release_notes': 'These are the release notes', 'release_notes': 'These are the release notes',
}, },
format='multipart', format='multipart',
HTTP_AUTHORIZATION=f'Bearer {self.token.token}', HTTP_AUTHORIZATION=f'Bearer {self.token_key}',
) )
self.assertEqual(response.status_code, status.HTTP_201_CREATED) self.assertEqual(response.status_code, status.HTTP_201_CREATED)
self.assertIn('version_id', response.data)
self.assertEqual(Version.objects.filter(extension=self.extension).count(), 2) self.assertEqual(Version.objects.filter(extension=self.extension).count(), 2)