def test_upload_new_version_existing_version(self): extension = Extension.objects.create() ExtensionVersion.objects.create(extension=extension, version='0.1') ExtensionVersion.objects.create(extension=extension, version='0.2.0') upload = self.upload('extension') # Also uses version "0.1". with self.assertRaises(ParseError): ExtensionVersion.from_upload(upload, parent=extension)
def test_upload_new_version_existing_version_number_is_higher(self): extension = Extension.objects.create() ExtensionVersion.objects.create(extension=extension, version='0.2') upload = self.upload('extension') with self.assertRaises(ParseError): # Try to upload version 0.1 it should fail since 0.2 is the latest. ExtensionVersion.from_upload(upload, parent=extension)
def test_upload_new_version_existing_pending_are_rendered_obsolete(self): extension = Extension.objects.create() older_version = ExtensionVersion.objects.create( extension=extension, version='0.0.0', status=STATUS_PENDING) old_version = ExtensionVersion.objects.create( extension=extension, version='0.0', status=STATUS_PENDING) eq_(extension.latest_version, old_version) eq_(extension.status, STATUS_PENDING) upload = self.upload('extension') # Instead of calling Extension.from_upload(), we need to call # ExtensionVersion.from_upload() directly, since an Extension already # exists. version = ExtensionVersion.from_upload(upload, parent=extension) eq_(extension.latest_version, version) eq_(extension.status, STATUS_PENDING) eq_(version.status, STATUS_PENDING) old_version.reload() older_version.reload() eq_(old_version.status, STATUS_OBSOLETE) eq_(older_version.status, STATUS_OBSOLETE)
def test_upload_new_version(self): extension = Extension.objects.create() old_version = ExtensionVersion.objects.create( extension=extension, version='0.0') eq_(extension.latest_version, old_version) eq_(extension.status, STATUS_NULL) upload = self.upload('extension') # Instead of calling Extension.from_upload(), we need to call # ExtensionVersion.from_upload() directly, since an Extension already # exists. version = ExtensionVersion.from_upload(upload, parent=extension) eq_(extension.latest_version, version) eq_(extension.status, STATUS_PENDING) eq_(version.version, '0.1') eq_(version.default_language, 'en-GB') eq_(version.filename, 'extension-%s.zip' % version.version) ok_(version.filename in version.file_path) ok_(private_storage.exists(version.file_path)) eq_(version.manifest, self.expected_manifest) eq_(version.status, STATUS_PENDING)
def test_upload_new_version_no_parent(self): upload = self.upload('extension') with self.assertRaises(ValueError): ExtensionVersion.from_upload(upload)