Source code for regulations.tests.node_types_tests

# vim: set encoding=utf-8
from unittest import TestCase

from regulations.generator import node_types


[docs]class NodeTypesTest(TestCase):
[docs] def test_change_appendix(self): node_parts_before = ['243', 'A', '30(a)'] node_parts_after = node_types.to_markup_id(node_parts_before) node_string = "-".join(node_parts_after) self.assertEqual('243-A-30a', node_string)
[docs] def test_type_from_label(self): for label in [('200', '5', 'A'), ('250',), ('250', '5'), ('200', '5', 'a', 'i', 'C')]: self.assertEqual(node_types.REGTEXT, node_types.type_from_label(label)) for label in [('250', 'A2'), ('250', 'A'), ('250', 'A', '3(b)')]: self.assertEqual(node_types.APPENDIX, node_types.type_from_label(label)) for label in [('250', 'Interp'), ('250', 'A', 'Interp'), ('250', 'A', 'Interp'), ('250', '5', 'b', 'Interp'), ('250', '5', 'b', 'Interp', '1'), ('250', '5', 'Interp', '5', 'r')]: self.assertEqual(node_types.INTERP, node_types.type_from_label(label)) self.assertEqual(node_types.EMPTYPART, node_types.type_from_label(['250', 'Subpart'])) self.assertEqual(node_types.SUBPART, node_types.type_from_label(['250', 'Subpart', 'C']))
[docs] def test_label_to_text(self): expectations = [ (['2323', '4'], '2323.4'), (['2323', '5', 'r', '3'], '2323.5(r)(3)'), (['23', '5', 'r', '3', 'i', 'p12', 'A'], '23.5(r)(3)(i)'), (['23', '5', 'p1', 'a'], '23.5'), (['2323', 'A'], 'Appendix A to Part 2323'), (['2323', 'A', '4'], 'Appendix A-4'), (['2323', 'A', '4', 'b', '2'], 'Appendix A-4(b)(2)'), (['2323', '5', 'Interp'], 'Supplement to 2323.5'), (['2323', '7', 'b', 'Interp', '1', 'v'], 'Supplement to 2323.7(b)-1.v'), (['2323', 'Z', 'Interp'], 'Supplement to Appendix Z to Part 2323'), (['204'], 'Regulation 204'), (['204', 'Interp'], 'Supplement I to Part 204'), (['204', 'Subpart', 'Interp'], 'Interpretations for Regulation Text of Part 204'), (['204', 'Subpart', 'C', 'Interp'], 'Interpretations for Subpart C of Part 204'), (['204', 'Appendices', 'Interp'], 'Interpretations for Appendices of Part 204'), (['204', 'Interp', 'h1'], 'This Section'), (['204', 'M2'], 'Appendix M2 to Part 204')] for label, expected_text in expectations: self.assertEqual(expected_text, node_types.label_to_text(label)) self.assertEqual('4', node_types.label_to_text(['2323', '4'], False)) self.assertEqual( '5(r)(3)', node_types.label_to_text(['2323', '5', 'r', '3'], False)) self.assertEqual(u'§ 2323.1', node_types.label_to_text(['2323', '1'], True, True)) self.assertEqual(u'§ 1', node_types.label_to_text(['2323', '1'], False, True))