@@ -41,26 +41,105 @@ def test_read(self):
4141 def test_crud (self ):
4242 service = client .connect (** self .opts .kwargs )
4343
44- self .assertTrue ('props' in service .confs )
45- props = service .confs ['props' ]
46-
47- if 'sdk-tests' in props : props .delete ('sdk-tests' )
48- self .assertFalse ('sdk-tests' in props )
49-
50- stanza = props .create ('sdk-tests' )
51- self .assertTrue (props .contains ('sdk-tests' ))
52- self .assertEqual (stanza .name ,'sdk-tests' )
53- self .assertTrue ('maxDist' in stanza .content )
54- value = int (stanza ['maxDist' ])
55- stanza .update (maxDist = value + 1 )
56- stanza .refresh ()
57- self .assertEqual (stanza ['maxDist' ], str (value + 1 ))
58- stanza .update (maxDist = value )
59- stanza .refresh ()
60- self .assertEqual (stanza ['maxDist' ], str (value ))
61-
62- props .delete ('sdk-tests' )
63- self .assertFalse (props .contains ('sdk-tests' ))
44+ # There is no way to delete a conf file via the REST API, so we
45+ # create a test app to use as the context fo the conf test and then
46+ # we cleanup by deleting the app.
47+
48+ app_name = "sdk-test-app"
49+
50+ # Delete any lingering test app
51+ testlib .delete_app (service , app_name )
52+ self .assertFalse (app_name in service .apps )
53+
54+ # Create a fresh test app
55+ service .apps .create (app_name )
56+ self .assertTrue (app_name in service .apps )
57+
58+ # Connect using the test app context
59+ kwargs = self .opts .kwargs .copy ()
60+ kwargs ['app' ] = app_name
61+ kwargs ['owner' ] = "nobody"
62+ kwargs ['sharing' ] = "app"
63+ service = client .connect (** kwargs )
64+
65+ conf_name = "sdk-test-conf"
66+
67+ confs = service .confs
68+ self .assertFalse (conf_name in confs )
69+
70+ conf = confs .create (conf_name )
71+ self .assertTrue (conf_name in confs )
72+ self .assertEqual (conf .name , conf_name )
73+
74+ stanzas = conf .list ()
75+ self .assertEqual (len (stanzas ), 0 )
76+
77+ conf .create ("stanza1" )
78+ self .assertEqual (len (conf .list ()), 1 )
79+ self .assertTrue ("stanza1" in conf )
80+ self .assertFalse ("stanza2" in conf )
81+ self .assertFalse ("stanza3" in conf )
82+
83+ conf .create ("stanza2" )
84+ self .assertEqual (len (conf .list ()), 2 )
85+ self .assertTrue ("stanza1" in conf )
86+ self .assertTrue ("stanza2" in conf )
87+ self .assertFalse ("stanza3" in conf )
88+
89+ conf .create ("stanza3" )
90+ self .assertEqual (len (conf .list ()), 3 )
91+ self .assertTrue ("stanza1" in conf )
92+ self .assertTrue ("stanza2" in conf )
93+ self .assertTrue ("stanza3" in conf )
94+
95+ stanza1 = conf ['stanza1' ]
96+ self .assertFalse ('key1' in stanza1 .content )
97+ self .assertFalse ('key2' in stanza1 .content )
98+ self .assertFalse ('key3' in stanza1 .content )
99+
100+ stanza1 .update (key1 = "value1" )
101+ stanza1 .refresh ()
102+ self .assertTrue ('key1' in stanza1 .content )
103+ self .assertFalse ('key2' in stanza1 .content )
104+ self .assertFalse ('key3' in stanza1 .content )
105+ self .check_content (stanza1 , key1 = "value1" )
106+
107+ stanza1 .update (key2 = "value2" )
108+ stanza1 .refresh ()
109+ self .assertTrue ('key1' in stanza1 .content )
110+ self .assertTrue ('key2' in stanza1 .content )
111+ self .assertFalse ('key3' in stanza1 .content )
112+ self .check_content (stanza1 , key1 = "value1" , key2 = "value2" )
113+
114+ stanza1 .update (key3 = 42 )
115+ stanza1 .refresh ()
116+ self .assertTrue ('key1' in stanza1 .content )
117+ self .assertTrue ('key2' in stanza1 .content )
118+ self .assertTrue ('key3' in stanza1 .content )
119+ self .check_content (stanza1 , key1 = "value1" , key2 = "value2" , key3 = 42 )
120+
121+ conf .delete ("stanza3" )
122+ self .assertEqual (len (conf .list ()), 2 )
123+ self .assertTrue ("stanza1" in conf )
124+ self .assertTrue ("stanza2" in conf )
125+ self .assertFalse ("stanza3" in conf )
126+
127+ conf .delete ("stanza2" )
128+ self .assertEqual (len (conf .list ()), 1 )
129+ self .assertTrue ("stanza1" in conf )
130+ self .assertFalse ("stanza2" in conf )
131+ self .assertFalse ("stanza3" in conf )
132+
133+ conf .delete ("stanza1" )
134+ self .assertEqual (len (conf .list ()), 0 )
135+ self .assertFalse ("stanza1" in conf )
136+ self .assertFalse ("stanza2" in conf )
137+ self .assertFalse ("stanza3" in conf )
138+
139+ # Reconnect using original context so we can cleaup the test app
140+ service = client .connect (** self .opts .kwargs )
141+ testlib .delete_app (service , app_name )
142+ self .assertFalse (app_name in service .apps )
64143
65144if __name__ == "__main__" :
66145 testlib .main ()
0 commit comments