def test_that_no_double_hyphens_occur(self):
     examples = ['construct ) cases', '()foo', 'a | b']
     for text in examples:
         self.assertTrue('--' not in datastructures.gen_id(text))
 def test_that_spaces_are_replaced_by_hyphens(self):
     self.assertEqual(datastructures.gen_id('hey du da'), 'hey-du-da')
 def test_that_dots_at_beginning_are_ignored(self):
     self.assertFalse(datastructures.gen_id('...foo').startswith('.'))
 def test_that_dots_in_middle_are_preserved(self):
     self.assertEqual(datastructures.gen_id('it . works'), 'it-.-works')
 def test_that_case_is_converted_to_lower_case(self):
     self.assertEqual(datastructures.gen_id('uGlYWriTtEn'), 'uglywritten')
 def test_that_empty_id_is_ok(self):
     # no exception, please
     self.assertEqual(datastructures.gen_id(''), '')
 def test_numbers_in_the_middle_are_ok(self):
     self.assertEqual(datastructures.gen_id('a1b'), 'a1b')
 def test_that_umlauts_are_still_contained(self):
     self.assertEqual(datastructures.gen_id('ärgerlich'), 'ärgerlich')
 def test_that_special_characters_are_ignored(self):
     self.assertEqual(datastructures.gen_id('$$foo##!bar'), 'foobar')
 def test_that_leading_numbers_are_ignored(self):
     self.assertEqual(datastructures.gen_id('01 hints and tips'),
         'hints-and-tips')
 def test_that_exclamation_marks_etc_do_not_cause_trouble(self):
     exclamation = 'this ! is bad'
     self.assertEqual(datastructures.gen_id(exclamation), 'this-is-bad')
     question = 'do I ? know'
     self.assertEqual(datastructures.gen_id(question), 'do-i-know')
 def test_that_hypens_in_middle_are_preserved(self):
     heading = 'Remarkable - MarkDown saves time'
     result = datastructures.gen_id(heading)
     self.assertTrue('able---' in result,
             "expected 'remarkable---' in id, got '{}'".format(result))
 def test_that_leading_hyphens_or_spaces_are_ignored(self):
     self.assertEqual(datastructures.gen_id('  - kk'), 'kk')