def test_that_totally_wrong_file_names_raise_exception(self):
     with self.assertRaises(errors.StructuralError):
         datastructures.extract_chapter_number("paper.md")
         datastructures.extract_chapter_number("k11_old.md")
 def test_that_non_two_digit_numbers_raise_structural_error(self):
     with self.assertRaises(errors.StructuralError):
         datastructures.extract_chapter_number("k9.md")
         datastructures.extract_chapter_number("k029.md")
 def test_that_number_is_extracted_from_relative_paths_and_absolute_paths(self):
     self.assertEqual(datastructures.extract_chapter_number(os.path.join("k04",
         "k04.md")), 4)
     self.assertEqual(datastructures.extract_chapter_number(os.path.join("c:", "k09",
     "k09.md")), 9)
     self.assertEqual(datastructures.extract_chapter_number("k08/k08.md"), 8)
 def test_that_subchapter_files_work(self):
     self.assertEqual(datastructures.extract_chapter_number('k0501.md'), 5)
     self.assertEqual(datastructures.extract_chapter_number('k060201.md'), 6)
 def test_that_number_is_extracted_from_normal_file_name(self):
     self.assertEqual(2, datastructures.extract_chapter_number("k02.md"))