def test_create_decorated_id_when_conflicting_id_there(self): context = etree.fromstring('<cib><a id="b"><c id="b-name"/></a></cib>') self.assertEqual( "b-name-1", lib.create_subelement_id(context.find(".//a"), "name", lib.IdProvider(context)), )
def test_parent_has_no_id(self): context = etree.fromstring("<cib><a/></cib>") self.assertEqual( "a-name", lib.create_subelement_id(context.find(".//a"), "name", lib.IdProvider(context)), )
def test_create_plain_id_when_no_confilicting_id_there(self): context = etree.fromstring('<cib><a id="b"/></cib>') self.assertEqual( "b-name", lib.create_subelement_id( context.find(".//a"), "name", lib.IdProvider(context) ) )
def test_book_available_valid_id(self): tree = etree.fromstring( '<cib><resources><group id="b"/></resources></cib>') id_provider = lib.IdProvider(tree) searcher = lib.ElementSearcher("group", "a", tree.find(".//resources")) self.assertFalse(searcher.element_found()) self.assertTrue(searcher.validate_book_id(id_provider)) self.assert_get_errors_raises(searcher)
def test_book_valid_id_used_in_cib(self): tree = etree.fromstring( '<cib><resources><group id="a"/></resources></cib>') id_provider = lib.IdProvider(tree) searcher = lib.ElementSearcher("group", "a", tree.find(".//resources")) self.assertTrue(searcher.element_found()) self.assertFalse(searcher.validate_book_id(id_provider)) # does not report book errors - the element has been found, # validate_book_id should have not been called self.assert_get_errors_raises(searcher)
def test_book_valid_id_used_in_id_provider(self): tree = etree.fromstring( '<cib><resources><group id="b"/></resources></cib>') id_provider = lib.IdProvider(tree) self.assertEqual([], id_provider.book_ids("a")) searcher = lib.ElementSearcher("group", "a", tree.find(".//resources")) self.assertFalse(searcher.element_found()) self.assertFalse(searcher.validate_book_id(id_provider)) assert_report_item_list_equal(searcher.get_errors(), [ fixture.error( report_codes.ID_ALREADY_EXISTS, id="a", ), ])
def test_book_not_valid_id(self): tree = etree.fromstring( '<cib><resources><group id="b"/></resources></cib>') id_provider = lib.IdProvider(tree) searcher = lib.ElementSearcher("group", "1a", tree.find(".//resources")) self.assertFalse(searcher.element_found()) self.assertFalse(searcher.validate_book_id(id_provider, "group name")) assert_report_item_list_equal(searcher.get_errors(), [ fixture.error( report_codes.INVALID_ID, id="1a", id_description="group name", is_first_char=True, invalid_character="1", ), ])
def setUp(self): super(IdProviderTest, self).setUp() self.provider = lib.IdProvider(self.cib.tree)