def test_create_xml_changes_child_stars(self): labels_amended = [Amendment('PUT', '200-?-2-a')] with XMLBuilder("ROOT") as ctx: ctx.P("(a) Content") ctx.STARS() n2a = Node('(a) Content', label=['200', '2', 'a'], source_xml=ctx.xml.xpath('//P')[0]) n2b = Node('(b) Content', label=['200', '2', 'b']) n2 = Node('n2', label=['200', '2'], children=[n2a, n2b]) root = Node('root', label=['200'], children=[n2]) notice_changes = changes.NoticeChanges() amendments.create_xml_changes(labels_amended, root, notice_changes) data = notice_changes.changes_by_xml[None] self.assertIn('200-2-a', data) self.assertTrue(1, len(data['200-2-a'])) change = data['200-2-a'][0] self.assertEqual('PUT', change['action']) self.assertNotIn('field', change) n2a.text = n2a.text + ":" n2a.source_xml.text = n2a.source_xml.text + ":" notice_changes = changes.NoticeChanges() amendments.create_xml_changes(labels_amended, root, notice_changes) data = notice_changes.changes_by_xml[None] self.assertIn('200-2-a', data) self.assertTrue(1, len(data['200-2-a'])) change = data['200-2-a'][0] self.assertEqual('PUT', change['action']) self.assertEqual('[text]', change.get('field'))
def test_create_xml_changes_reserve(self): labels_amended = [Amendment('RESERVE', '200-?-2-a')] n2a = Node('[Reserved]', label=['200', '2', 'a']) n2 = Node('n2', label=['200', '2'], children=[n2a]) root = Node('root', label=['200'], children=[n2]) notice_changes = changes.NoticeChanges() amendments.create_xml_changes(labels_amended, root, notice_changes) reserve = notice_changes.changes_by_xml[None]['200-2-a'][0] self.assertEqual(reserve['action'], 'RESERVE') self.assertEqual(reserve['node']['text'], u'[Reserved]')
def test_create_xml_changes_stars_hole(self): labels_amended = [Amendment('PUT', '200-?-2-a')] n2a1 = Node('(1) * * *', label=['200', '2', 'a', '1']) n2a2 = Node('(2) a2a2a2', label=['200', '2', 'a', '2']) n2a = Node('(a) aaa', label=['200', '2', 'a'], children=[n2a1, n2a2]) n2 = Node('n2', label=['200', '2'], children=[n2a]) root = Node('root', label=['200'], children=[n2]) notice_changes = changes.NoticeChanges() amendments.create_xml_changes(labels_amended, root, notice_changes) data = notice_changes.changes_by_xml[None] for label in ('200-2-a', '200-2-a-2'): self.assertIn(label, data) self.assertEqual(1, len(data[label])) change = data[label][0] self.assertEqual('PUT', change['action']) self.assertNotIn('field', change) self.assertIn('200-2-a-1', data) self.assertEqual(1, len(data['200-2-a-1'])) change = data['200-2-a-1'][0] self.assertEqual('KEEP', change['action']) self.assertFalse('field' in change)