Пример #1
0
 def test_get_datetime_without_format(self):
     d = {
         'a': '2019-05-01',
     }
     b = ParseDict(d)
     r = datetime(2019, 5, 1, 0, 0)
     self.assertEqual(b.get_datetime('a'), r)
Пример #2
0
 def test_get_uuid(self):
     d = {
         'a': 'CA761232-ED42-11CE-BACD-00AA0057B223',
         'b': ' CA761232-ED42-11CE-BACD-00AA0057B223 ',
         'c': ' CA761232ED4211CEBACD00AA0057B223 ',
         'd': ' ca761232ed4211cebacd00aa0057b223 ',
         'e': 'CA761232ED4211CEBACD00AA0057B223',
         'f': 'CA761232ED4211CEBACD00AA0057B2233',  # invalid too long
         'g': 'CA761232ED4211CEBACD00AA0057B22x',  # invalid chars
         'h': 'CA761232ED4211CEBACD00AA0057B22',  # invalid too short
         'i': 'CA761232-ED42-11CE-BACD-00AA0057B2234',  # invalid too long
     }
     b = ParseDict(d)
     self.assertEqual(b.get_uuid('a'),
                      'CA761232-ED42-11CE-BACD-00AA0057B223')
     self.assertEqual(b.get_uuid('b'),
                      'CA761232-ED42-11CE-BACD-00AA0057B223')
     self.assertEqual(b.get_uuid('c'), 'CA761232ED4211CEBACD00AA0057B223')
     self.assertEqual(b.get_uuid('d'), 'ca761232ed4211cebacd00aa0057b223')
     self.assertEqual(b.get_uuid('e'), 'CA761232ED4211CEBACD00AA0057B223')
     self.assertEqual(b.get_uuid('f'), '')
     self.assertEqual(b.get_uuid('f', 'none'), 'none')
     self.assertEqual(b.get_uuid('g'), '')
     self.assertEqual(b.get_uuid('h'), '')
     self.assertEqual(b.get_uuid('i'), '')
Пример #3
0
 def test_get_datetime_with_datetime_value(self):
     now = datetime.now()
     d = {
         'a': now,
     }
     b = ParseDict(d)
     self.assertEqual(b.get_datetime('a'), now)
Пример #4
0
 def test_get_datetime_with_valid_format(self):
     d = {
         'a': '2019-05-01',
     }
     b = ParseDict(d)
     r = datetime(2019, 5, 1, 0, 0)
     self.assertEqual(b.get_datetime('a', format='%Y-%m-%d'), r)
Пример #5
0
 def test_get_date_with_date_value(self):
     today = datetime.now().date()
     d = {
         'a': today,
     }
     b = ParseDict(d)
     self.assertEqual(b.get_date('a'), today)
Пример #6
0
 def test_get_int_list(self):
     d = {
         'a': ['0', '1', '2', 'Hello World'],
         'b': '0,1,2',
     }
     b = ParseDict(d)
     self.assertEqual(b.get_int_list('a'), [0, 1, 2, None])
     self.assertEqual(b.get_int_list('b'), [0, 1, 2])
Пример #7
0
 def test_get_datetime_with_timestamp_int(self):
     now = datetime.now()
     ts = time.mktime(now.timetuple()) if PY2 else datetime.timestamp(now)
     d = {
         'a': ts,
     }
     b = ParseDict(d)
     self.assertEqual(b.get_datetime('a'), datetime.fromtimestamp(ts))
Пример #8
0
 def test_get_datetime_default(self):
     now = datetime.now()
     d = {
         'a': None,
     }
     b = ParseDict(d)
     self.assertEqual(b.get_datetime('a', now), now)
     self.assertEqual(b.get_datetime('b', now), now)
Пример #9
0
 def test_get_float_list(self):
     d = {
         'a': ['0.0', '0.5', '1.0', 'Hello World'],
         'b': '0.0,0.5,1.0',
     }
     b = ParseDict(d)
     self.assertEqual(b.get_float_list('a'), [0.0, 0.5, 1.0, None])
     self.assertEqual(b.get_float_list('b'), [0.0, 0.5, 1.0])
Пример #10
0
 def test_get_bool_with_bool_values(self):
     d = {
         'b1': True,
         'b2': False,
     }
     b = ParseDict(d)
     self.assertTrue(b.get_bool('b1'))
     self.assertFalse(b.get_bool('b2'))
Пример #11
0
 def test_get_date_default(self):
     today = datetime.now().date()
     d = {
         'a': None,
     }
     b = ParseDict(d)
     self.assertEqual(b.get_date('a', today), today)
     self.assertEqual(b.get_date('b', today), today)
Пример #12
0
    def test_get_phonenumber(self):
        d = {
            'b': ' (0039) 3334445566 ',  # valid phone number with 00 prefix
            'c': '+393334445566  ',  # valid phone number with + prefix
            'd': '+39333444556677889900',  # invalid phone number
            'e': '3334445566',  # valid phone number without prefix
            'y': '',
        }
        r = {
            'e164': '+393334445566',
            'international': '+39 333 444 5566',
            'national': '333 444 5566',
        }
        b = ParseDict(d)

        # valid phone number with 00 prefix
        p = b.get_phonenumber('b')
        self.assertEqual(p, r)

        # valid phone number with + prefix
        p = b.get_phonenumber('c')
        self.assertEqual(p, r)

        # invalid phone number
        p = b.get_phonenumber('d')
        self.assertEqual(p, {})

        # valid phone number without prefix, without country code
        p = b.get_phonenumber('e')
        self.assertEqual(p, {})

        # valid phone number without prefix, with lowercase alpha_2 country code
        p = b.get_phonenumber('e', country_code='it')
        self.assertEqual(p, r)

        # valid phone number without prefix, with uppercase alpha_2 uppercase
        p = b.get_phonenumber('e', country_code='IT')
        self.assertEqual(p, r)

        # valid phone number without prefix, with lowercase alpha_3 country code
        p = b.get_phonenumber('e', country_code='ita')
        self.assertEqual(p, r)

        # valid phone number without prefix, with uppercase alpha_3 uppercase
        p = b.get_phonenumber('e', country_code='ITA')
        self.assertEqual(p, r)

        # valid phone number without prefix, with wrong country code
        p = b.get_phonenumber('e', country_code='fr')
        self.assertEqual(p, {})

        # invalid phone number (empty)
        p = b.get_phonenumber('y')
        self.assertEqual(p, {})

        # invalid phone number dict key
        p = b.get_phonenumber('z')
        self.assertEqual(p, {})
Пример #13
0
 def test_get_int_with_choices(self):
     d = {
         'a': 25,
         'b': 35,
     }
     b = ParseDict(d)
     o = [0, 25, 50, 75, 100]
     self.assertEqual(b.get_int('a', 50, choices=o), 25)
     self.assertEqual(b.get_int('b', 50, choices=o), 50)
Пример #14
0
 def test_get_slug(self):
     d = {
         'a': ' Hello World ',
         'b': 1,
     }
     b = ParseDict(d)
     self.assertEqual(b.get_slug('a'), 'hello-world')
     self.assertEqual(b.get_slug('b', 'none'), '1')
     self.assertEqual(b.get_slug('c', 'none'), 'none')
Пример #15
0
 def test_get_bool_default(self):
     d = {
         'n': None,
     }
     b = ParseDict(d)
     self.assertTrue(b.get_bool('n', True))
     self.assertFalse(b.get_bool('n', False))
     self.assertTrue(b.get_bool('d1', True))
     self.assertFalse(b.get_bool('d2', False))
Пример #16
0
 def test_get_float_with_choices(self):
     d = {
         'a': float(0.25),
         'b': float(0.35),
     }
     b = ParseDict(d)
     o = [float(0.0), float(0.25), float(0.5), float(0.75), float(1.0)]
     self.assertEqual(b.get_float('a', float(0.5), choices=o), float(0.25))
     self.assertEqual(b.get_float('b', float(0.5), choices=o), float(0.5))
Пример #17
0
 def test_get_str_fix_encoding(self):
     d = {
         'a': 'Sexâ\x80\x99n Drug',
         'b': 'Localit\xe0',
     }
     b = ParseDict(d)
     # only python 3
     if PY3:
         self.assertEqual(b.get_str('a'), 'Sex\'n Drug')
         self.assertEqual(b.get_str('b'), 'Località')
Пример #18
0
 def test_get_str_list(self):
     d = {
         'a': ['Hello World', 'See you later', 99.9],
         'b': 'Hello World,See you later,99.9',
     }
     b = ParseDict(d)
     self.assertEqual(b.get_str_list('a'),
                      ['Hello World', 'See you later', '99.9'])
     self.assertEqual(b.get_str_list('b'),
                      ['Hello World', 'See you later', '99.9'])
Пример #19
0
 def test_get_str(self):
     d = {
         'a': 'Hello World',
         'b': 'Hello  World',
         'c': 1,
     }
     b = ParseDict(d)
     self.assertEqual(b.get_str('a'), 'Hello World')
     self.assertEqual(b.get_str('b'), 'Hello World')
     self.assertEqual(b.get_str('c'), '1')
Пример #20
0
 def test_get_decimal(self):
     d = {
         'a': 1,
         'b': True,
         'c': Decimal('4.25'),
     }
     b = ParseDict(d)
     self.assertEqual(b.get_decimal('a'), Decimal('1.0'))
     self.assertEqual(b.get_decimal('b'), Decimal('0.0'))
     self.assertEqual(b.get_decimal('b', Decimal('2.5')), Decimal('2.5'))
     self.assertEqual(b.get_decimal('c'), Decimal('4.25'))
Пример #21
0
 def test_get_float(self):
     d = {
         'a': 1.0,
         'b': True,
         'c': float(4.25),
     }
     b = ParseDict(d)
     self.assertEqual(b.get_float('a'), float(1.0))
     self.assertEqual(b.get_float('b'), float(0.0))
     self.assertEqual(b.get_float('b', float(2.5)), float(2.5))
     self.assertEqual(b.get_float('c'), float(4.25))
Пример #22
0
 def test_get_bool_with_int_values(self):
     d = {
         'i0': 0,
         'i1': 1,
         'i2': 2,
     }
     b = ParseDict(d)
     self.assertFalse(b.get_bool('i0'))
     self.assertTrue(b.get_bool('i1'))
     self.assertTrue(b.get_bool('i2', True))
     self.assertFalse(b.get_bool('i2', False))
Пример #23
0
 def test_get_datetime_with_invalid_format(self):
     now = datetime.now()
     d = {
         'a': '2019-05-01',
     }
     b = ParseDict(d)
     self.assertEqual(b.get_datetime('a', format='%Y/%m/%d'), None)
     self.assertEqual(b.get_datetime(
         'a',
         now,
         format='%Y/%m/%d',
     ), now)
Пример #24
0
 def test_get_list_from_json(self):
     d = {
         'a':
         '{"numbers": ["0", "1", "2", "3", "4"], "letters": ["a", "b", "c", "d", "e"]}',
         'b': '["0", "1", "2", "3", "4"]',
         'c': '[]',
     }
     b = ParseDict(d)
     self.assertEqual(b.get_list('a'), [])
     self.assertEqual(b.get_list('b'), ['0', '1', '2', '3', '4'])
     self.assertEqual(b.get_list('c'), [])
     self.assertEqual(b.get_list('c', [0]), [])
     self.assertEqual(b.get_list('d', [0]), [0])
Пример #25
0
 def test_get_str_with_choices(self):
     d = {
         'a': 'Sunday',
         'b': 'Noneday',
     }
     b = ParseDict(d)
     self.assertEqual(b.get_str('a', choices=['Sunday', 'Saturday']),
                      'Sunday')
     self.assertEqual(
         b.get_str('b', choices=['Sunday', 'Saturday'], default='Saturday'),
         'Saturday')
     self.assertEqual(
         b.get_str('c', choices=['Sunday', 'Saturday'], default='Saturday'),
         'Saturday')
Пример #26
0
 def test_get_datetime_list(self):
     d = {
         'a': ['2019-05-01', '2018-12-31', 'Hello World'],
         'b': '2019-05-01,2018-12-31',
     }
     b = ParseDict(d)
     self.assertEqual(
         b.get_datetime_list('a'),
         [datetime(2019, 5, 1, 0, 0),
          datetime(2018, 12, 31, 0, 0), None])
     self.assertEqual(
         b.get_datetime_list('b'),
         [datetime(2019, 5, 1, 0, 0),
          datetime(2018, 12, 31, 0, 0)])
Пример #27
0
 def test_get_dict(self):
     d = {
         'a': {
             'x': 1,
             'y': 2
         },
         'b': {},
     }
     b = ParseDict(d)
     self.assertEqual(b.get_dict('a'), {'x': 1, 'y': 2})
     self.assertEqual(b.get_dict('b'), {})
     self.assertEqual(b.get_dict('b', {'default': True}), {})
     self.assertEqual(b.get_dict('c'), {})
     self.assertEqual(b.get_dict('c', {'default': True}), {'default': True})
Пример #28
0
 def test_get_bool_list(self):
     d = {
         'a': '1,YES,True,0,NO,False,XXX',
         'b': '1;YES;True;0;NO;False;XXX',
         'c': ['1', 'YES', True, 0, 'NO', 'False', 'XXX']
     }
     b = ParseDict(d)
     self.assertEqual(b.get_bool_list('a'),
                      [True, True, True, False, False, False, None])
     self.assertEqual(b.get_bool_list('b'), [None])
     self.assertEqual(b.get_bool_list('b', separator=';'),
                      [True, True, True, False, False, False, None])
     self.assertEqual(b.get_bool_list('c'),
                      [True, True, True, False, False, False, None])
     self.assertEqual(b.get_bool_list('d', default=[False]), [False])
Пример #29
0
 def test_get_uuid_list(self):
     d = {
         'a': [
             'CA761232-ED42-11CE-BACD-00AA0057B223',
             ' FB761232-ED42-314E-BFCA-00AA0057B118 ', 99.9
         ],
         'b':
         'Hello World, See you later, 99.9',
     }
     b = ParseDict(d)
     self.assertEqual(b.get_uuid_list('a'), [
         'CA761232-ED42-11CE-BACD-00AA0057B223',
         'FB761232-ED42-314E-BFCA-00AA0057B118', None
     ])
     self.assertEqual(b.get_uuid_list('b'), [None, None, None])
Пример #30
0
 def test_get_list_with_separator(self):
     d = {
         'a': '0,1,2,3,4',
         'b': '5|6|7|8|9',
         'c': '',
     }
     b = ParseDict(d)
     self.assertEqual(b.get_list('a', separator=','),
                      ['0', '1', '2', '3', '4'])
     self.assertEqual(b.get_list('b', separator='|'),
                      ['5', '6', '7', '8', '9'])
     self.assertEqual(b.get_list('b'), ['5|6|7|8|9'])
     self.assertEqual(b.get_list('c', separator=','), [])
     self.assertEqual(b.get_list('d', separator=','), [])
     self.assertEqual(b.get_list('e', [0], separator=','), [0])