9
9
10
10
11
11
@pytest .fixture (name = "config" )
12
- def config_fixture ():
13
- return {"api_key" : "apikey" , "app_id" : "appid" , "project_space" : "project_space" , "start_date" : "2022-01-01T00:00:00Z" ,'form_fields_to_exclude' :[]}
12
+ def config_fixture_1 ():
13
+ return {"api_key" : "apikey" , "app_id" : "appid" , "project_space" : "project_space" , "start_date" : "2022-01-01T00:00:00Z" ,'form_fields_to_exclude' :[], "include_archived" : False }
14
+
15
+ @pytest .fixture (name = "config_include_archived" )
16
+ def config_fixture_2 ():
17
+ return {"api_key" : "apikey" , "app_id" : "appid" , "project_space" : "project_space" , "start_date" : "2022-01-01T00:00:00Z" ,'form_fields_to_exclude' :[], "include_archived" : True }
14
18
15
19
16
20
@patch ("source_commcare.source.Application.read_records" )
@@ -30,3 +34,61 @@ def test_check_connection_fail(mocker, config):
30
34
logger_mock = MagicMock ()
31
35
excepted_outcome = " Invalid apikey, project_space or app_id : 'api_key'"
32
36
assert source .check_connection (logger_mock , config = {}) == (False , excepted_outcome )
37
+
38
+ def test_include_archived_false (config ):
39
+ source = SourceCommcare ()
40
+ appdata = [
41
+ {
42
+ "modules" : [
43
+ {
44
+ "forms" : [
45
+ {
46
+ "xmlns" : "namespace" ,
47
+ "name" : {"en" : "english_name" },
48
+ }
49
+ ]
50
+ }
51
+ ]
52
+ }
53
+ ]
54
+ streams = source .generate_streams ({}, config , appdata )
55
+ assert len (streams ) == 2
56
+
57
+ # form
58
+ assert streams [0 ].name == "english_name"
59
+ assert streams [0 ].xmlns == "namespace"
60
+ assert streams [0 ].include_archived == False
61
+
62
+ # case
63
+ assert streams [1 ].app_id == "appid"
64
+ assert streams [1 ].project_space == "project_space"
65
+ assert streams [1 ].start_date == "2022-01-01T00:00:00Z"
66
+
67
+ def test_include_archived_true (config_include_archived ):
68
+ source = SourceCommcare ()
69
+ appdata = [
70
+ {
71
+ "modules" : [
72
+ {
73
+ "forms" : [
74
+ {
75
+ "xmlns" : "namespace" ,
76
+ "name" : {"en" : "english_name" },
77
+ }
78
+ ]
79
+ }
80
+ ]
81
+ }
82
+ ]
83
+ streams = source .generate_streams ({}, config_include_archived , appdata )
84
+ assert len (streams ) == 2
85
+
86
+ # form
87
+ assert streams [0 ].name == "english_name"
88
+ assert streams [0 ].xmlns == "namespace"
89
+ assert streams [0 ].include_archived == True
90
+
91
+ # case
92
+ assert streams [1 ].app_id == "appid"
93
+ assert streams [1 ].project_space == "project_space"
94
+ assert streams [1 ].start_date == "2022-01-01T00:00:00Z"
0 commit comments