def test_extract_translations_simple(file_obj): extension = 'src/olympia/files/fixtures/files/notify-link-clicks-i18n.xpi' with amo.tests.copy_file(extension, file_obj.file_path): messages = utils.extract_translations(file_obj) # Make sure nb_NO is not in the list since we don't support # it currently. assert list(sorted(messages.keys())) == ['de', 'en-US', 'ja', 'nl']
def test_extract_translations_fail_silent_invalid_file(read_mock, file_obj): extension = 'src/olympia/files/fixtures/files/notify-link-clicks-i18n.xpi' with amo.tests.copy_file(extension, file_obj.file_path): read_mock.side_effect = KeyError # Does not raise an exception utils.extract_translations(file_obj) read_mock.side_effect = IOError # Does not raise an exception too utils.extract_translations(file_obj) # We don't fail on invalid JSON too, this is addons-linter domain read_mock.side_effect = ValueError utils.extract_translations(file_obj) # But everything else... read_mock.side_effect = TypeError with pytest.raises(TypeError): utils.extract_translations(file_obj)
def test_extract_translations_fail_silent_missing_file(read_mock, file_obj): extension = 'src/olympia/files/fixtures/files/notify-link-clicks-i18n.xpi' with amo.tests.copy_file(extension, file_obj.file_path): read_mock.side_effect = KeyError # Does not raise an exception utils.extract_translations(file_obj) read_mock.side_effect = IOError # Does not raise an exception too utils.extract_translations(file_obj) # We only catch KeyError and IOError though read_mock.side_effect = ValueError with pytest.raises(ValueError): utils.extract_translations(file_obj)
def test_extract_translations_simple(file_obj): extension = 'src/olympia/files/fixtures/files/notify-link-clicks-i18n.xpi' with amo.tests.copy_file(extension, file_obj.file_path): messages = utils.extract_translations(file_obj) assert list(sorted(messages.keys())) == [ 'de', 'en-US', 'ja', 'nb-NO', 'nl', 'ru', 'sv-SE']