Пример #1
0
 def test_generate_by_pattern(self):
     generator = RandomNameGenerator({
         'all': {
             'type': 'cartesian',
             'lists': ['size', 'color', 'fruit'],
         },
         'justcolor': {
             'generator': True,
             'type': 'cartesian',
             'lists': ['color', 'fruit'],
         },
         'size': {
             'type': 'words',
             'words': ['small', 'large']
         },
         'color': {
             'type': 'words',
             'words': ['green', 'yellow']
         },
         'fruit': {
             'type': 'words',
             'words': ['apple', 'banana']
         },
     })
     with patch('coolname.impl.randrange', return_value=0):
         self.assertEqual(generator.generate_slug(), 'small-green-apple')
         self.assertEqual(generator.generate_slug('justcolor'), 'green-apple')
Пример #2
0
 def test_max_slug_length(self):
     generator = RandomNameGenerator({
         'all': {'type': 'cartesian', 'max_slug_length': 9, 'lists': ['one', 'two']},
         'one': {'type': 'words', 'words': ['big',  'small']},
         'two': {'type': 'words', 'words': ['cat',  'tiger']},
     })
     self.assertEqual(set(generator.generate_slug() for i in range(0, 100)),
                      set(['big-cat', 'big-tiger', 'small-cat']))
Пример #3
0
 def test_dump_generator(self):
     config = {
         'all': {
             'type': 'words',
             'words': ['one', 'two', 'three']
         }
     }
     generator = RandomNameGenerator(config)
     stream = io.StringIO()
     generator._dump(stream)
     self.assertEqual(stream.getvalue(),
                      "WordList(['one', 'two', 'three'], len=3)\n")
Пример #4
0
 def test_create_from_file(self, load_config_mock, *args):
     load_config_mock.return_value = {
         'all': {
             'type': 'cartesian',
             'lists': ['number', 'number']
         },
         'number': {
             'type': 'words',
             'words': [str(x) for x in range(0, 10)]
         }
     }
     generator = RandomNameGenerator(load_config('dummy'))
     with patch('coolname.impl.randrange', return_value=35):
         self.assertEqual(generator.generate_slug(), '3-5')
Пример #5
0
 def test_unicode_config(self):
     generator = RandomNameGenerator({
         u('all'): {
             u('type'): u('cartesian'),
             u('lists'): [u('прилагательное'), u('существительное')]
         },
         u('прилагательное'): {
             u('type'): u('words'),
             u('words'): [u('белый'), u('черный')]
         },
         u('существительное'): {
             u('type'): u('words'),
             u('words'): [u('круг'), u('квадрат')]
         }
     })
     with patch('coolname.impl.randrange',
                side_effect=partial(next, cycle(iter(range(4))))):
         self.assertEqual(generator.generate_slug(), u('белый-круг'))
         self.assertEqual(generator.generate_slug(), u('белый-квадрат'))
         self.assertEqual(generator.generate_slug(), u('черный-круг'))
         self.assertEqual(generator.generate(), [u('черный'), u('квадрат')])
Пример #6
0
 def test_avoid_similar_words(self):
     generator = RandomNameGenerator({
         'all': {
             'type': 'cartesian',
             'lists': ['w1', 'w2'],
         },
         'w1': {
             'type': 'words',
             'words': ['brave', 'agile']
         },
         'w2': {
             'type': 'words',
             'words': ['bravery',  'brass', 'agility', 'age']
         }
     })
     with patch('coolname.impl.randrange',
                side_effect=partial(next, cycle(iter(range(9))))):
         self.assertEqual(generator.generate_slug(), 'brave-brass')
         self.assertEqual(generator.generate_slug(), 'brave-agility')
         self.assertEqual(generator.generate_slug(), 'brave-age')
         self.assertEqual(generator.generate_slug(), 'agile-bravery')
         self.assertEqual(generator.generate_slug(), 'agile-brass')
         self.assertEqual(generator.generate_slug(), 'agile-age')
         self.assertEqual(generator.generate_slug(), 'brave-brass')
Пример #7
0
 def test_avoid_repeating(self):
     generator = RandomNameGenerator({
         'all': {
             'type': 'cartesian',
             'lists': ['adjective', 'of', 'noun'],
         },
         'adjective': {
             'type': 'words',
             'words': ['one', 'two']
         },
         'of': {
             'type': 'const',
             'value': 'of'
         },
         'noun': {
             'type': 'words',
             'words': ['one', 'two']
         }
     })
     with patch('coolname.impl.randrange',
                side_effect=partial(next, cycle(iter([0, 1, 2, 3])))):
         self.assertEqual(generator.generate_slug(), 'one-of-two')
         self.assertEqual(generator.generate_slug(), 'two-of-one')
         self.assertEqual(generator.generate_slug(), 'one-of-two')