Skip to content

Commit 58b031a

Browse files
committed
tests: Add test for correct .ods datetime behaviour
#342
1 parent ed3cf2c commit 58b031a

File tree

6 files changed

+21
-9
lines changed

6 files changed

+21
-9
lines changed

examples/iati.ods

11.4 KB
Binary file not shown.

examples/iati.xlsx

6.5 KB
Binary file not shown.

examples/iati/expected.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version='1.0' encoding='utf-8'?>
22
<iati-activities>
33
<!--XML generated by flatten-tool-->
4-
<iati-activity>
4+
<iati-activity last-updated-datetime="2011-10-01T00:00:00+00:00">
55
<iati-identifier>AA-AAA-123456789-ABC123</iati-identifier>
66
<reporting-org ref="AA-AAA-123456789" type="40">
77
<narrative>Organisation name</narrative>
@@ -28,7 +28,7 @@
2828
<value value-date="2012-03-03">20</value>
2929
</transaction>
3030
</iati-activity>
31-
<iati-activity>
31+
<iati-activity last-updated-datetime="2016-01-01T00:00:00+00:00">
3232
<iati-identifier>AA-AAA-123456789-ABC124</iati-identifier>
3333
<reporting-org ref="AA-AAA-123456789" type="40">
3434
<narrative>Organisation name</narrative>

examples/iati/main.csv

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
iati-identifier,reporting-org/@ref,reporting-org/@type,reporting-org/narrative,participating-org/@role,participating-org/@ref,activity-status/@code,activity-date/@type,activity-date/@iso-date,recipient-country/0/@code,recipient-country/0/@percentage,recipient-country/1/@code,recipient-country/1/@percentage,title/narrative,description/narrative
2-
AA-AAA-123456789-ABC123,AA-AAA-123456789,40,Organisation name,1,AA-AAA-123456789,2,1,2011-10-01,AF,40,XK,60,A title,A description
3-
AA-AAA-123456789-ABC124,AA-AAA-123456789,40,Organisation name,1,AA-AAA-123456789,3,2,2016-01-01,AG,30,XK,70,Another title,Another description
1+
iati-identifier,reporting-org/@ref,reporting-org/@type,reporting-org/narrative,participating-org/@role,participating-org/@ref,activity-status/@code,activity-date/@type,activity-date/@iso-date,recipient-country/0/@code,recipient-country/0/@percentage,recipient-country/1/@code,recipient-country/1/@percentage,title/narrative,description/narrative,@last-updated-datetime
2+
AA-AAA-123456789-ABC123,AA-AAA-123456789,40,Organisation name,1,AA-AAA-123456789,2,1,2011-10-01,AF,40,XK,60,A title,A description,2011-10-01T00:00:00+00:00
3+
AA-AAA-123456789-ABC124,AA-AAA-123456789,40,Organisation name,1,AA-AAA-123456789,3,2,2016-01-01,AG,30,XK,70,Another title,Another description,2016-01-01T00:00:00+00:00

flattentool/tests/test_unflatten.py

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -66,15 +66,24 @@ def test_360_fields_case_insensitive(tmpdir):
6666
assert output_json_grants == output_json_space_case
6767

6868

69-
@pytest.mark.parametrize("dirname", ["examples/iati", "examples/iati_multilang"])
70-
def test_unflatten_xml(tmpdir, dirname):
69+
@pytest.mark.parametrize(
70+
"dirname,input_format",
71+
[
72+
("examples/iati", "csv"),
73+
("examples/iati", "ods"),
74+
("examples/iati", "xlsx"),
75+
("examples/iati_multilang", "csv"),
76+
],
77+
)
78+
def test_unflatten_xml(tmpdir, dirname, input_format):
7179
schema_path = "examples/iati"
7280
schemas = ["iati-activities-schema.xsd", "iati-common.xsd"]
7381
schema_filepaths = ["{}/{}".format(schema_path, schema) for schema in schemas]
7482
unflatten(
75-
input_name=dirname,
83+
input_name=dirname
84+
+ (".{}".format(input_format) if input_format != "csv" else ""),
7685
output_name=tmpdir.join("output.xml").strpath,
77-
input_format="csv",
86+
input_format=input_format,
7887
root_list_path="iati-activity",
7988
id_name="iati-identifier",
8089
xml=True,

flattentool/tests/test_xml_input.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ def test_xml_basic_example():
3333
parser.parse()
3434
assert list(parser.main_sheet) == [
3535
"iati-identifier",
36+
"@last-updated-datetime",
3637
"reporting-org/@ref",
3738
"reporting-org/@type",
3839
"reporting-org/narrative",
@@ -46,6 +47,7 @@ def test_xml_basic_example():
4647
]
4748
assert parser.main_sheet.lines == [
4849
{
50+
"@last-updated-datetime": "2011-10-01T00:00:00+00:00",
4951
"activity-date/@type": "1",
5052
"reporting-org/narrative": "Organisation name",
5153
"participating-org/@ref": "AA-AAA-123456789",
@@ -59,6 +61,7 @@ def test_xml_basic_example():
5961
"activity-status/@code": "2",
6062
},
6163
{
64+
"@last-updated-datetime": "2016-01-01T00:00:00+00:00",
6265
"activity-date/@type": "2",
6366
"reporting-org/narrative": "Organisation name",
6467
"participating-org/@ref": "AA-AAA-123456789",

0 commit comments

Comments
 (0)