def test_delete_resource_translations(self): """ Test resource translation deletion """ # Create primary language translation. This is needed to push # additional translations source_trans = Translation( source_entity=self.source_entity, language=self.language, string="foobar", resource=self.resource ) source_trans.save() trans_lang = "el" trans = "foo" # Create new translation resp = self.client["maintainer"].post( reverse("push_translation", args=[self.project.slug, trans_lang]), json.dumps({"strings": [{"id": source_trans.id, "translations": {"other": trans}}]}), content_type="application/json", ) self.assertEqual(resp.status_code, 200) self.assertEqual( Translation.objects.filter( source_entity__resource=self.resource, language__code=trans_lang, string=trans ).count(), 1, ) # Delete Translations # Delete source language translations delete_url = reverse( "resource_translations_delete", args=[self.project.slug, self.resource.slug, self.language.code] ) resp = self.client["maintainer"].get(delete_url) self.assertEqual(resp.status_code, 200) self.assertTemplateUsed(resp, "resources/resource_translations_confirm_delete.html") resp = self.client["maintainer"].post(delete_url, follow=True) self.assertEqual(resp.status_code, 200) self.assertTemplateUsed(resp, "resources/resource_detail.html") self.assertEqual( Translation.objects.filter(source_entity__resource=self.resource, language=self.language).count(), 0 ) # Delete target language translations delete_url_el = reverse( "resource_translations_delete", args=[self.project.slug, self.resource.slug, trans_lang] ) resp = self.client["maintainer"].get(delete_url_el) self.assertEqual(resp.status_code, 200) self.assertTemplateUsed(resp, "resources/resource_translations_confirm_delete.html") resp = self.client["maintainer"].post(delete_url_el, follow=True) self.assertEqual(resp.status_code, 200) self.assertTemplateUsed(resp, "resources/resource_detail.html") self.assertEqual( Translation.objects.filter(source_entity__resource=self.resource, language__code=trans_lang).count(), 0 )
def test_push_translation(self): """ Test translation push view. """ # Create primary language translation. This is needed to push # additional translations source_trans = Translation( source_entity=self.source_entity, language=self.language, string="foobar", resource=self.resource ) source_trans.save() trans_lang = "el" trans = "foo" new_trans = "foo2" # Create new translation # FIXME: Test plurals resp = self.client["maintainer"].post( reverse("push_translation", args=[self.project.slug, trans_lang]), json.dumps({"strings": [{"id": source_trans.id, "translations": {"other": trans}}]}), content_type="application/json", ) self.assertEqual(resp.status_code, 200) self.assertEqual( Translation.objects.filter( source_entity__resource=self.resource, language__code=trans_lang, string=trans ).count(), 1, ) # Update existing translation resp = self.client["maintainer"].post( reverse("push_translation", args=[self.project.slug, trans_lang]), json.dumps({"strings": [{"id": source_trans.id, "translations": {"other": new_trans}}]}), content_type="application/json", ) self.assertEqual(resp.status_code, 200) translations = Translation.objects.filter( source_entity__resource=self.resource, language__code=trans_lang, string=new_trans ) self.assertEqual(translations.count(), 1) source_trans.delete() translations.delete()
def test_push_translation(self): """ Test translation push view. """ # Create primary language translation. This is needed to push # additional translations source_trans = Translation(source_entity=self.source_entity, language=self.language, string="foobar", resource=self.resource) source_trans.save() trans_lang = 'el' trans = "foo" new_trans = "foo2" # Create new translation # FIXME: Test plurals resp = self.client['maintainer'].post(reverse( 'push_translation', args=[self.project.slug, trans_lang]), json.dumps({ 'strings': [{ 'id': source_trans.id, 'translations': { 'other': trans } }] }), content_type='application/json') self.assertEqual(resp.status_code, 200) self.assertEqual( Translation.objects.filter(source_entity__resource=self.resource, language__code=trans_lang, string=trans).count(), 1) # Update existing translation resp = self.client['maintainer'].post(reverse( 'push_translation', args=[self.project.slug, trans_lang]), json.dumps({ 'strings': [{ 'id': source_trans.id, 'translations': { 'other': new_trans } }] }), content_type='application/json') self.assertEqual(resp.status_code, 200) translations = Translation.objects.filter( source_entity__resource=self.resource, language__code=trans_lang, string=new_trans) self.assertEqual(translations.count(), 1) source_trans.delete() translations.delete()
def test_translations(self): t1 = Translation(string="A translation", source_entity=self.se1, rule=1) t1.source_entity_id = 1 t2 = Translation( string="Two translations", source_entity=self.se1, rule=5 ) t2.source_entity_id = 1 t3 = Translation(string="A translation", source_entity=self.se2, rule=5) t3.source_entity_id = 2 col = TranslationCollection() self.assertFalse(t1 in col) col.add(t1) self.assertTrue(t1 in col) self.assertFalse(t2 in col) col.add(t2) self.assertTrue(t2 in col) self.assertFalse(t3 in col) col.add(t3) self.assertTrue(t3 in col) self.assertTrue(len(col._items), 3)
def test_delete_resource_translations(self): """ Test resource translation deletion """ # Create primary language translation. This is needed to push # additional translations source_trans = Translation(source_entity=self.source_entity, language=self.language, string="foobar", resource=self.resource) source_trans.save() trans_lang = 'el' trans = "foo" # Create new translation resp = self.client['maintainer'].post(reverse( 'push_translation', args=[self.project.slug, trans_lang]), json.dumps({ 'strings': [{ 'id': source_trans.id, 'translations': { 'other': trans } }] }), content_type='application/json') self.assertEqual(resp.status_code, 200) self.assertEqual( Translation.objects.filter(source_entity__resource=self.resource, language__code=trans_lang, string=trans).count(), 1) # Delete Translations # Delete source language translations delete_url = reverse( 'resource_translations_delete', args=[self.project.slug, self.resource.slug, self.language.code]) resp = self.client['maintainer'].get(delete_url) self.assertEqual(resp.status_code, 200) self.assertTemplateUsed( resp, 'resources/resource_translations_confirm_delete.html') resp = self.client['maintainer'].post(delete_url, follow=True) self.assertEqual(resp.status_code, 200) self.assertTemplateUsed(resp, 'resources/resource_detail.html') self.assertEqual( Translation.objects.filter(source_entity__resource=self.resource, language=self.language).count(), 0) # Delete target language translations delete_url_el = reverse( 'resource_translations_delete', args=[self.project.slug, self.resource.slug, trans_lang]) resp = self.client['maintainer'].get(delete_url_el) self.assertEqual(resp.status_code, 200) self.assertTemplateUsed( resp, 'resources/resource_translations_confirm_delete.html') resp = self.client['maintainer'].post(delete_url_el, follow=True) self.assertEqual(resp.status_code, 200) self.assertTemplateUsed(resp, 'resources/resource_detail.html') self.assertEqual( Translation.objects.filter(source_entity__resource=self.resource, language__code=trans_lang).count(), 0)