def test_listofstrings(self):
        """Test list of strings"""
        # test default separators
        self.assertEqual(ListOfStrings.SEPARATOR_LIST, ',')

        dest = ['a', 'b']
        txt = ListOfStrings.SEPARATOR_LIST.join(dest)

        res = ListOfStrings(txt)

        self.assertEqual(res, dest)
        self.assertEqual(str(res), txt)

        # retest with space separated separator
        res = ListOfStrings(txt.replace(ListOfStrings.SEPARATOR_LIST, ListOfStrings.SEPARATOR_LIST + ' '))
        self.assertEqual(res, dest)
Beispiel #2
0
    def test_listofstrings(self):
        """Test list of strings"""
        # test default separators
        self.assertEqual(ListOfStrings.SEPARATOR_LIST, ',')

        dest = ['a', 'b']
        txt = ListOfStrings.SEPARATOR_LIST.join(dest)

        res = ListOfStrings(txt)

        self.assertEqual(res, dest)
        self.assertEqual(str(res), txt)

        # retest with space separated separator
        res = ListOfStrings(txt.replace(ListOfStrings.SEPARATOR_LIST, ListOfStrings.SEPARATOR_LIST + ' '))
        self.assertEqual(res, dest)

        # empty string yields a list with an empty string
        self.assertEqual(ListOfStrings(''), [''])

        # empty entries are retained
        self.assertEqual(ListOfStrings('a,,b'), ['a', '', 'b'])
Beispiel #3
0
    def test_dictofstrings(self):
        """Test dict of strings"""
        # test default separators
        self.assertEqual(DictOfStrings.SEPARATOR_DICT, ';')
        self.assertEqual(DictOfStrings.SEPARATOR_KEY_VALUE, ':')

        # start with simple one because the conversion to string is ordered
        dest = {'a': 'b'}
        txt = DictOfStrings.SEPARATOR_KEY_VALUE.join(dest.items()[0])

        res = DictOfStrings(txt)
        self.assertEqual(res, dest)
        self.assertEqual(str(res), txt)

        # test with auto convert list to dict
        class Tmp(DictOfStrings):
            KEYLESS_ENTRIES = ['first']
            __str__ = DictOfStrings.__str__

        dest2 = {'first': 'first_value'}
        dest2.update(dest)
        txt2 = DictOfStrings.SEPARATOR_DICT.join([dest2['first'], txt])
        res = Tmp(txt2)
        self.assertEqual(res, dest2)
        self.assertEqual(str(res), txt2)

        # retest with space separated separator
        txt2 = txt.replace(DictOfStrings.SEPARATOR_KEY_VALUE,
                           DictOfStrings.SEPARATOR_KEY_VALUE + ' ')
        res = ListOfStrings(
            txt2.replace(DictOfStrings.SEPARATOR_DICT,
                         DictOfStrings.SEPARATOR_DICT + ' '))

        # more complex one
        dest = {'a': 'b', 'c': 'd'}
        tmp = [
            DictOfStrings.SEPARATOR_KEY_VALUE.join(item)
            for item in dest.items()
        ]
        txt = DictOfStrings.SEPARATOR_DICT.join(tmp)

        res = DictOfStrings(txt)
        self.assertEqual(res, dest)

        # test ALLOWED_KEYS
        class Tmp(DictOfStrings):
            ALLOWED_KEYS = ['x']

        self.assertErrorRegex(ValueError, "allowed", Tmp, txt)
 def _from_string(self, txt):
     """Convert from comma-separated string"""
     res = ListOfStrings._from_string(self, txt)
     return [Patch(x) for x in res]
Beispiel #5
0
 def _from_string(self, txt):
     """Convert from comma-separated string"""
     res = ListOfStrings._from_string(self, txt)
     return [Patch(x) for x in res]