-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest_merger.py
69 lines (54 loc) · 2.14 KB
/
test_merger.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
from unittest import TestCase
from StringIO import StringIO
from merger import XMLMerger, Node
class NodeTestCase(TestCase):
def test_equal_to_similar_node(self):
node1 = Node('my_tag', {'my_attr': 'my_val'})
node1.append(Node('my_child'))
node2 = Node('my_tag', {'my_attr': 'my_val'})
node2.append(Node('my_child'))
self.assertEqual(node1, node2)
def test_equal_to_node_with_same_children(self):
node1 = Node('my_tag')
node1.append(Node('my_child1'))
node2 = Node('my_tag')
node2.append(Node('my_child1'))
self.assertNotEqual(node1, node2)
def test_not_equal_to_node_with_different_children(self):
node1 = Node('my_tag')
node1.append(Node('my_child1'))
node2 = Node('my_tag')
node2.append(Node('my_child2'))
self.assertNotEqual(node1, node2)
def test_whitespace_is_ignored_in_text(self):
node1 = Node('my_tag')
node1.text = 'Hello\n\n'
node2 = Node('my_tag')
node2.text = 'Hello'
self.assertEqual(node1, node2)
class XMLMergerTestCase(TestCase):
def test_merge_two_root_nodes_with_no_overlap(self):
root1 = Node('variants')
root1.append(Node('variant', {'attr1': 'test'}))
root2 = Node('variants')
root2.append(Node('variant'))
expected_root = Node('variants')
expected_root.extend([
Node('variant', {'attr1': 'test'}), Node('variant')])
self.assertEqual(XMLMerger.merge([root1, root2]), [expected_root])
def test_merge_two_root_nodes_with_overlap(self):
roots = []
for snp_name in ('snp_a', 'snp_b'):
root = Node('variants')
var = Node('variant', {'attr1': 'test'})
snp = Node(snp_name)
var.append(snp)
root.append(var)
roots.append(root)
expected_root = Node('variants')
var = Node('variant', {'attr1': 'test'})
for snp_name in ('snp_a', 'snp_b'):
snp = Node(snp_name)
var.append(snp)
expected_root.append(var)
self.assertEqual(XMLMerger.merge(roots), [expected_root])