forked from ActiveWebsite/data_test_develop
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest_parseXmlSaveCsv.py
More file actions
123 lines (91 loc) · 4.1 KB
/
test_parseXmlSaveCsv.py
File metadata and controls
123 lines (91 loc) · 4.1 KB
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
import os
import xml
import pytest
import collections
import parseXmlSaveCsv
from mock import Mock, patch
@pytest.fixture(scope='function')
def mock_xml_element():
mock_element = Mock(spec=xml.etree.ElementTree.Element)
mock_text = Mock()
mock_text.text = 'string'
mock_element.find.return_value = mock_text
mock_element.tag.return_value = 'Listings'
return mock_element
@patch('parseXmlSaveCsv.urllib2.urlopen')
def test_download_file_will_pass(mock_urlopen):
test_path = os.path.dirname(os.path.realpath(__file__))+'\\test.xml'
mock = Mock()
mock.read.side_effect = ['mock_contents1']
mock_urlopen.return_value = mock
result = parseXmlSaveCsv.download_file('http://test.com', 'test.xml')
assert type(result) is str
assert result == test_path
os.remove(result)
@patch('parseXmlSaveCsv.urllib2.urlopen')
def test_download_file_will_fail(mock_urlopen):
test_path = os.path.dirname(os.path.realpath(__file__))+'\\test_fail.xml'
mock = Mock()
mock.read.side_effect = ['mock_contents1']
mock_urlopen.return_value = mock
result = parseXmlSaveCsv.download_file('http://test.com', 'test.xml')
assert result is not test_path
os.remove(result)
def test_check_description_will_pass():
result = parseXmlSaveCsv.check_description('this test will pass', 'pass')
assert result
def test_check_description_will_fail():
result = parseXmlSaveCsv.check_description('this test will pass', 'fail')
assert result is False
def test_check_valid_year_will_pass():
result = parseXmlSaveCsv.check_valid_year('2019-05-15 13:29:45', 2019)
assert result
def test_check_valid_year_will_fail():
result = parseXmlSaveCsv.check_valid_year('2019-05-15 13:29:45', 2018)
assert result is False
@patch("parseXmlSaveCsv.check_valid_year", return_value=True)
@patch("parseXmlSaveCsv.check_description", return_value=True)
def test_listing_valid_will_pass(mock_check_year, mock_check_description, mock_xml_element):
result = parseXmlSaveCsv.listing_valid(mock_xml_element)
assert mock_check_year.called
assert mock_check_description.called
assert result
@patch("parseXmlSaveCsv.check_valid_year", return_value=False)
def test_listing_valid_will_fail_check_year(mock_check_year, mock_xml_element):
result = parseXmlSaveCsv.listing_valid(mock_xml_element)
assert mock_check_year.called
assert result is False
@patch("parseXmlSaveCsv.check_valid_year", return_value=True)
@patch("parseXmlSaveCsv.check_description", return_value=False)
def test_listing_valid_will_fail_check_description(mock_check_year, mock_check_description, mock_xml_element):
result = parseXmlSaveCsv.listing_valid(mock_xml_element)
assert mock_check_year.called
assert mock_check_description.called
assert result is False
def test_join_sub_nodes_will_pass(mock_xml_element):
mock_text = Mock()
mock_text.text = 'string'
mock_xml_element.findall.return_value = [mock_text, mock_text]
result = parseXmlSaveCsv.join_sub_nodes(mock_xml_element, 'test')
assert result == 'string,string'
def test_join_sub_nodes_will_fail_main_node_is_none():
result = parseXmlSaveCsv.join_sub_nodes(None, 'test')
assert result == ''
def test_join_sub_nodes_will_fail_main_node_find_all_is_none(mock_xml_element):
mock_xml_element.findall.return_value = None
result = parseXmlSaveCsv.join_sub_nodes(mock_xml_element, 'test')
assert result == ''
@patch("parseXmlSaveCsv.join_sub_nodes", return_value='string')
def test_get_fields_will_pass(mock_join_sub_nodes, mock_xml_element):
mock_element = Mock(spec=xml.etree.ElementTree.Element)
mock_element.find.return_value = mock_xml_element
result = parseXmlSaveCsv.get_get_fields(mock_element)
assert mock_join_sub_nodes.called
assert type(result) is collections.OrderedDict
def test_write_listing_to_csv_will_pass():
test_path = os.path.dirname(os.path.realpath(__file__)) + '\\test.csv'
mock_dict = collections.OrderedDict()
mock_dict['header'] = 'value'
parseXmlSaveCsv.write_listing_to_csv(mock_dict, 'test')
assert os.path.isfile('test.csv')
os.remove(test_path)