def test_remove_duplicate_approvals(self): """ Ensure that duplicate approvals are removed. """ # Trigger creation of new approved translation. self.main_vcs_translation.strings[None] = 'New Translated String' self.main_vcs_translation.fuzzy = False # Translation approved after the sync started simulates the race # where duplicate translations occur. duplicate_translation = TranslationFactory.create( entity=self.main_db_entity, locale=self.translated_locale, string='Other New Translated String', approved=True, approved_date=aware_datetime(1970, 1, 3) ) ChangedEntityLocale.objects.filter(entity=self.main_db_entity).delete() with patch('pontoon.sync.tasks.VCSProject', return_value=self.vcs_project): sync_project_repo(self.db_project.pk, self.repository.pk, self.project_sync_log.pk, self.now) # Only one translation should be approved: the duplicate_translation. assert_equal(self.main_db_entity.translation_set.filter(approved=True).count(), 1) new_translation = self.main_db_entity.translation_set.get( string='New Translated String' ) assert_false(new_translation.approved) assert_true(new_translation.approved_date is None) duplicate_translation.refresh_from_db() assert_true(duplicate_translation.approved) assert_equal(duplicate_translation.approved_date, aware_datetime(1970, 1, 3))
def test_no_commit(self): """Don't call commit_changes if command.no_commit is True.""" sync_project_repo(self.db_project.pk, self.repository.pk, self.project_sync_log.pk, self.now, [], no_commit=True) assert_false(self.mock_commit_changes.called)
def test_create_project_log(self): assert_false(RepositorySyncLog.objects.exists()) repo = RepositoryFactory.create() self.db_project.repositories = [repo] self.db_project.save() sync_project_repo(self.db_project.pk, self.repository.pk, self.project_sync_log.pk, self.now) log = RepositorySyncLog.objects.get(repository=self.repository) assert_equal(log.repository, self.repository)
def test_clear_changed_entities(self): """ Delete all ChangedEntityLocale objects for the project created before the sync started after handling it. """ self.now = aware_datetime(1970, 1, 2) changed1, changed2, changed_after = ChangedEntityLocaleFactory.create_batch(3, locale=self.translated_locale, entity__resource=self.main_db_resource, when=aware_datetime(1970, 1, 1) ) changed_after.when = aware_datetime(1970, 1, 3) changed_after.save() sync_project_repo(self.db_project.pk, self.repository.pk, self.project_sync_log.pk, self.now) with assert_raises(ChangedEntityLocale.DoesNotExist): changed1.refresh_from_db() with assert_raises(ChangedEntityLocale.DoesNotExist): changed2.refresh_from_db() changed_after.refresh_from_db() # Should not raise
def test_no_commit(self): """Don't call commit_changes if command.no_commit is True.""" sync_project_repo(self.db_project.pk, self.repository.pk, self.project_sync_log.pk, self.now, no_commit=True) assert_false(self.mock_commit_changes.called)