| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent 10f73f7 commit 65a0103
1 file changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -766,6 +766,76 @@ def test_expand_lang(self): | |||
| 766 | 766 | self.assertEqual(gettext._expand_lang(locale), expanded) | |
| 767 | 767 | ||
| 768 | 768 | ||
| 769 | + class FindTestCase(unittest.TestCase): | ||
| 770 | + | ||
| 771 | + def setUp(self): | ||
| 772 | + self.env = self.enterContext(os_helper.EnvironmentVarGuard()) | ||
| 773 | + self.tempdir = self.enterContext(os_helper.temp_cwd()) | ||
| 774 | + | ||
| 775 | + for key in ('LANGUAGE', 'LC_ALL', 'LC_MESSAGES', 'LANG'): | ||
| 776 | + self.env.unset(key) | ||
| 777 | + | ||
| 778 | + def create_mo_file(self, lang): | ||
| 779 | + locale_dir = os.path.join(self.tempdir, "locale") | ||
| 780 | + mofile_dir = os.path.join(locale_dir, lang, "LC_MESSAGES") | ||
| 781 | + os.makedirs(mofile_dir) | ||
| 782 | + mo_file = os.path.join(mofile_dir, "mofile.mo") | ||
| 783 | + with open(mo_file, "wb") as f: | ||
| 784 | + f.write(GNU_MO_DATA) | ||
| 785 | + return mo_file | ||
| 786 | + | ||
| 787 | + def test_find_with_env_vars(self): | ||
| 788 | + # test that find correctly finds the environment variables | ||
| 789 | + # when languages are not supplied | ||
| 790 | + mo_file = self.create_mo_file("ga_IE") | ||
| 791 | + for var in ('LANGUAGE', 'LC_ALL', 'LC_MESSAGES', 'LANG'): | ||
| 792 | + self.env.set(var, 'ga_IE') | ||
| 793 | + result = gettext.find("mofile", | ||
| 794 | + localedir=os.path.join(self.tempdir, "locale")) | ||
| 795 | + self.assertEqual(result, mo_file) | ||
| 796 | + self.env.unset(var) | ||
| 797 | + | ||
| 798 | + def test_find_with_languages(self): | ||
| 799 | + # test that passed languages are used | ||
| 800 | + self.env.set('LANGUAGE', 'pt_BR') | ||
| 801 | + mo_file = self.create_mo_file("ga_IE") | ||
| 802 | + | ||
| 803 | + result = gettext.find("mofile", | ||
| 804 | + localedir=os.path.join(self.tempdir, "locale"), | ||
| 805 | + languages=['ga_IE']) | ||
| 806 | + self.assertEqual(result, mo_file) | ||
| 807 | + | ||
| 808 | + @unittest.mock.patch('gettext._expand_lang') | ||
| 809 | + def test_find_with_no_lang(self, patch_expand_lang): | ||
| 810 | + # no language can be found | ||
| 811 | + gettext.find('foo') | ||
| 812 | + patch_expand_lang.assert_called_with('C') | ||
| 813 | + | ||
| 814 | + @unittest.mock.patch('gettext._expand_lang') | ||
| 815 | + def test_find_with_c(self, patch_expand_lang): | ||
| 816 | + # 'C' is already in languages | ||
| 817 | + self.env.set('LANGUAGE', 'C') | ||
| 818 | + gettext.find('foo') | ||
| 819 | + patch_expand_lang.assert_called_with('C') | ||
| 820 | + | ||
| 821 | + def test_find_all(self): | ||
| 822 | + # test that all are returned when all is set | ||
| 823 | + paths = [] | ||
| 824 | + for lang in ["ga_IE", "es_ES"]: | ||
| 825 | + paths.append(self.create_mo_file(lang)) | ||
| 826 | + result = gettext.find('mofile', | ||
| 827 | + localedir=os.path.join(self.tempdir, "locale"), | ||
| 828 | + languages=["ga_IE", "es_ES"], all=True) | ||
| 829 | + self.assertEqual(sorted(result), sorted(paths)) | ||
| 830 | + | ||
| 831 | + def test_find_deduplication(self): | ||
| 832 | + # test that find removes duplicate languages | ||
| 833 | + mo_file = [self.create_mo_file('ga_IE')] | ||
| 834 | + result = gettext.find("mofile", localedir=os.path.join(self.tempdir, "locale"), | ||
| 835 | + languages=['ga_IE', 'ga_IE'], all=True) | ||
| 836 | + self.assertEqual(result, mo_file) | ||
| 837 | + | ||
| 838 | + | ||
| 769 | 839 | class MiscTestCase(unittest.TestCase): | |
| 770 | 840 | def test__all__(self): | |
| 771 | 841 | support.check__all__(self, gettext, | |
| Back | FazBrowse Home | New Git URL |
0 commit comments