Пример #1
0
 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)
Пример #2
0
 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)
Пример #3
0
    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)
Пример #4
0
    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)
Пример #5
0
 def test_upload_new_version_no_parent(self):
     upload = self.upload('extension')
     with self.assertRaises(ValueError):
         ExtensionVersion.from_upload(upload)