def testAddTextForExistingLanguageSucceed(self): resource = QuantityStrings('key', self.proper_languages) for lang in self.proper_languages: text = build_test_text(lang) for quantity in QuantityStrings.QUANTITIES: resource.add_quantity_string(lang, quantity, text) self.assertEqual(resource.get_quantity_string(lang, quantity), text)
def testGetStringForNonexistingLanguageFail(self): resource = QuantityStrings('key', self.proper_languages) for lang in self.bad_languages: for quantity in QuantityStrings.QUANTITIES: try: resource.get_quantity_string(lang, quantity) self.fail('This operation should fail') except MstException: pass
def testKeyCanBeAssignedOnlyOne(self): key = "key" string = QuantityStrings(key, []) self.assertEqual(string.key, key) try: string.key = "different key" self.fail("This operation should fail") except AttributeError: pass
def testAddTextForNonexistingLanguageFail(self): resource = QuantityStrings('key', self.proper_languages) for lang in self.bad_languages: for quantity in QuantityStrings.QUANTITIES: try: quantity_string = build_test_text(lang) resource.add_quantity_string(lang, quantity, quantity_string) self.fail('This operation should fail') except MstException: pass
def testKeyMustBeAString(self): keys = [ object(), [], {}, () ] for key in keys: try: string = QuantityStrings(key, []) self.fail("This operation should fail") except ValueError: pass
def get_quantity_strings(self): """Collect all QuantityStrings resources and return a list""" resources = {} for row in self.data: if (self._get_row_type(row) == self.TYPE_QUANTITY_STRING and self._has_valid_key(row)): key_with_quantity = row[self.id_column] key, quantity = key_with_quantity.split(':') if (key in resources) == False: resources[key] = QuantityStrings(key, self.languages) qs = resources[key] for lang in self.languages: col = self.language_column(lang) text = row[col] options = self._get_row_options(row) qs.add_quantity_string(lang, quantity, ResourceText(text, options)) return sorted(resources.values())
def testQuantityStringsAreEmptyByDefault(self): resource = QuantityStrings('key', self.proper_languages) for language in self.proper_languages: for quantity in QuantityStrings.QUANTITIES: value = resource.get_quantity_string(language, quantity) self.assertEqual(value, '', 'Expected quantity string %s for language %s to be empty' % (quantity, language) )
def testQuantityStringsContainAllQuantityKeys(self): string = QuantityStrings('key', self.proper_languages) for lang in self.proper_languages: quantities = string.get_quantities(lang) self.assertEqual( len(quantities), 6, "Expected 6 quantities")