Example #1
0
    def test_no_files(self, extract_mock):
        addon = addon_factory()
        addon.current_version.files.all().delete()

        migrate_webextensions_to_git_storage([addon.pk])

        extract_mock.assert_not_called()
Example #2
0
    def test_no_files(self, extract_mock):
        addon = addon_factory()
        addon.current_version.files.all().delete()

        migrate_webextensions_to_git_storage([addon.pk])

        extract_mock.assert_not_called()
Example #3
0
    def test_migrate_versions_from_old_to_new(self, extract_mock):
        addon = addon_factory(file_kw={
            'filename': 'webextension_no_id.xpi',
            'is_webextension': True
        })
        oldest_version = addon.current_version
        oldest_version.update(created=self.days_ago(6))
        older_version = version_factory(created=self.days_ago(5),
                                        addon=addon,
                                        file_kw={
                                            'filename':
                                            'webextension_no_id.xpi',
                                            'is_webextension': True
                                        })
        most_recent = version_factory(created=self.days_ago(2),
                                      addon=addon,
                                      file_kw={
                                          'filename': 'webextension_no_id.xpi',
                                          'is_webextension': True
                                      })

        migrate_webextensions_to_git_storage([addon.pk])

        # Only once instead of twice
        assert extract_mock.call_count == 3
        assert extract_mock.call_args_list[0][0][0] == oldest_version.pk
        assert extract_mock.call_args_list[1][0][0] == older_version.pk
        assert extract_mock.call_args_list[2][0][0] == most_recent.pk
Example #4
0
    def test_basic(self):
        addon = addon_factory(file_kw={'filename': 'webextension_no_id.xpi'})

        migrate_webextensions_to_git_storage([addon.pk])

        repo = AddonGitRepository(addon.pk)

        assert repo.git_repository_path == os.path.join(
            settings.GIT_FILE_STORAGE_PATH, id_to_path(addon.id), 'package')
        assert os.listdir(repo.git_repository_path) == ['.git']
Example #5
0
    def test_basic(self):
        addon = addon_factory(file_kw={'filename': 'webextension_no_id.xpi'})

        migrate_webextensions_to_git_storage([addon.pk])

        repo = AddonGitRepository(addon.pk)

        assert repo.git_repository_path == os.path.join(
            settings.GIT_FILE_STORAGE_PATH, id_to_path(addon.id), 'addon')
        assert os.listdir(repo.git_repository_path) == ['.git']
Example #6
0
    def test_skip_already_migrated_versions(self, extract_mock):
        addon = addon_factory(file_kw={'filename': 'webextension_no_id.xpi'})
        version_to_migrate = addon.current_version
        already_migrated_version = version_factory(
            addon=addon, file_kw={'filename': 'webextension_no_id.xpi'})
        already_migrated_version.update(git_hash='already migrated...')

        migrate_webextensions_to_git_storage([addon.pk])

        # Only once instead of twice
        extract_mock.assert_called_once_with(version_to_migrate.pk)
Example #7
0
    def test_only_first_file(self, extract_mock):
        addon = addon_factory(file_kw={'filename': 'webextension_no_id.xpi'})
        version = addon.current_version
        first_file = version.all_files[0]
        file_factory(version=version)
        file_factory(version=version)

        migrate_webextensions_to_git_storage([addon.pk])

        extract_mock.assert_called_once_with(first_file.pk,
                                             amo.RELEASE_CHANNEL_LISTED)
Example #8
0
    def test_skip_already_migrated_versions(self, extract_mock):
        addon = addon_factory(file_kw={'filename': 'webextension_no_id.xpi'})
        version_to_migrate = addon.current_version
        already_migrated_version = version_factory(
            addon=addon, file_kw={'filename': 'webextension_no_id.xpi'})
        already_migrated_version.update(git_hash='already migrated...')

        migrate_webextensions_to_git_storage([addon.pk])

        # Only once instead of twice
        extract_mock.assert_called_once_with(version_to_migrate.pk)
    def test_only_first_file(self, extract_mock):
        addon = addon_factory(file_kw={'filename': 'webextension_no_id.xpi'})
        version = addon.current_version
        first_file = version.all_files[0]
        file_factory(version=version)
        file_factory(version=version)

        migrate_webextensions_to_git_storage([addon.pk])

        extract_mock.assert_called_once_with(
            first_file.pk, amo.RELEASE_CHANNEL_LISTED)
Example #10
0
    def test_migrate_versions_extracts_source(
            self, extract_source_mock, extract_mock):
        addon = addon_factory(file_kw={'filename': 'webextension_no_id.xpi'})
        version_to_migrate = addon.current_version
        version_to_migrate.update(
            source=source_upload_path(version_to_migrate, 'foo.tar.gz'))

        version_without_source = version_factory(
            addon=addon, file_kw={'filename': 'webextension_no_id.xpi'})

        migrate_webextensions_to_git_storage([addon.pk])

        extract_source_mock.assert_called_once_with(version_to_migrate.pk)
        extract_mock.assert_has_calls([
            mock.call(version_to_migrate.pk),
            mock.call(version_without_source.pk)
        ])
Example #11
0
    def test_migrate_versions_extracts_source(
            self, extract_source_mock, extract_mock):
        addon = addon_factory(file_kw={'filename': 'webextension_no_id.xpi'})
        version_to_migrate = addon.current_version
        version_to_migrate.update(
            source=source_upload_path(version_to_migrate, 'foo.tar.gz'))

        version_without_source = version_factory(
            addon=addon, file_kw={'filename': 'webextension_no_id.xpi'})

        migrate_webextensions_to_git_storage([addon.pk])

        extract_source_mock.assert_called_once_with(version_to_migrate.pk)
        extract_mock.assert_has_calls([
            mock.call(version_to_migrate.pk),
            mock.call(version_without_source.pk)
        ])
Example #12
0
    def test_migrate_versions_from_old_to_new(self, extract_mock):
        addon = addon_factory(file_kw={'filename': 'webextension_no_id.xpi'})
        oldest_version = addon.current_version
        oldest_version.update(created=self.days_ago(6))
        older_version = version_factory(
            created=self.days_ago(5),
            addon=addon, file_kw={'filename': 'webextension_no_id.xpi'})
        most_recent = version_factory(
            created=self.days_ago(2),
            addon=addon, file_kw={'filename': 'webextension_no_id.xpi'})

        migrate_webextensions_to_git_storage([addon.pk])

        # Only once instead of twice
        assert extract_mock.call_count == 3
        assert extract_mock.call_args_list[0][0][0] == oldest_version.pk
        assert extract_mock.call_args_list[1][0][0] == older_version.pk
        assert extract_mock.call_args_list[2][0][0] == most_recent.pk