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')