def test_fields(self): serializer_data = self.get_serializer_data() assert_equal(serializer_data['id'], self.language.id) assert_equal(serializer_data['created'], format_datetime_field(self.language.created)) assert_equal(serializer_data['is_original'], True) assert_equal(serializer_data['is_primary_audio_language'], True) assert_equal(serializer_data['is_rtl'], self.language.is_rtl()) assert_equal(serializer_data['published'], self.language.has_public_version()) assert_equal(serializer_data['language_code'], self.language.language_code) assert_equal(serializer_data['name'], self.language.get_language_code_display()) assert_equal(serializer_data['title'], self.language.get_title()) assert_equal(serializer_data['description'], self.language.get_description()) assert_equal(serializer_data['metadata'], self.language.get_metadata()) assert_equal(serializer_data['subtitle_count'], self.language.get_subtitle_count()) assert_equal(serializer_data['subtitles_complete'], self.language.subtitles_complete) assert_equal(serializer_data['is_translation'], compat.subtitlelanguage_is_translation(self.language)) assert_equal( serializer_data['original_language_code'], compat.subtitlelanguage_original_language_code(self.language)) assert_equal(serializer_data['resource_uri'], reverse('api:subtitle-language-detail', kwargs={ 'video_id': self.video.video_id, 'language_code': self.language.language_code, }, request=APIRequestFactory().get("/")))
def test_subtitlelanguage_is_translation(self): # en fr # 2 # | 1 # |/ # 1 e1 = self.sl_en.add_version() f1 = self.sl_fr.add_version(parents=[e1]) e2 = self.sl_en.add_version() self.assertFalse(subtitlelanguage_is_translation(self.sl_en)) self.assertTrue(subtitlelanguage_is_translation(self.sl_fr)) self.assertFalse(subtitlelanguage_is_translation(self.sl_de)) # en fr # 2 # 2 | # | 1 # |/ # 1 f2 = self.sl_fr.add_version() self.assertFalse(subtitlelanguage_is_translation(self.sl_en)) self.assertTrue(subtitlelanguage_is_translation(self.sl_fr)) self.assertFalse(subtitlelanguage_is_translation(self.sl_de)) # en fr de # 1 # 2 # 2 | # | 1 # |/ # 1 d1 = self.sl_de.add_version() self.sl_de.clear_tip_cache() self.assertFalse(subtitlelanguage_is_translation(self.sl_de)) # en fr de # 2 # /| # / 1 # 2 # 2 | # | 1 # |/ # 1 d2 = self.sl_de.add_version(parents=[f2]) self.sl_de.clear_tip_cache() self.assertTrue(subtitlelanguage_is_translation(self.sl_de)) # Deleting the *source* of a translation shouldn't change the fact that # a language is a translation. # en fr de # 2 # /| # / 1 # X # 2 | # | 1 # |/ # 1 f2.visibility_override = 'deleted' f2.save() self.sl_de.clear_tip_cache() self.assertTrue(subtitlelanguage_is_translation(self.sl_de)) # But deleting the version that makes a language a translation should. # I think. This is really hard. d2.visibility_override = 'deleted' d2.save() self.sl_de.clear_tip_cache() self.assertFalse(subtitlelanguage_is_translation(self.sl_de)) # Shut up, Pyflakes. assert e1 and f1 and e2 and f2 and d1 and d2
def get_is_translation(self, language): return compat.subtitlelanguage_is_translation(language)