1313enable_verbose_logging ()
1414
1515
16- @profiles .admin_enterprise_and_agol
16+ @profiles .admin_all
1717@integration_test
1818class TestUserContentMethods (unittest .TestCase ):
1919@classmethod
@@ -36,12 +36,23 @@ def setUpClass(cls):
3636user
3737for user in cls .gis .users .search ("NOT username:esri*" )
3838if len (list (user .folders ))> 1
39+ and "portal:user:receiveItems" in user .privileges
3940 ]
4041
42+ def setUp (self ):
43+ self .start_t = time .perf_counter ()
44+
45+ def tearDown (self ):
46+ end_t = time .perf_counter ()
47+ elapsed = end_t - self .start_t
48+ print (
49+ f"\n { '-' * 50 } \n { self ._testMethodName } took{ elapsed / 60 :.2f} minutes to run.\n "
50+ )
51+
4152def test_user_folders (self ):
4253gis :GIS = self .gis
4354if not self .user_list :
44- self .skipTest ("Novalid users, skipping " )
55+ self .skipTest ("No users with custom folders. Skipping. " )
4556user :User = self .user_list [- 1 ]
4657self .published_item .reassign_to (user )
4758self .assertNotEqual (
@@ -50,20 +61,35 @@ def test_user_folders(self):
5061"Item owner should be different than initial owner." ,
5162 )
5263folder_gen = user .folders
53- assert isinstance (user .folders ,GeneratorType )
64+ self .assertIsInstance (
65+ user .folders ,
66+ GeneratorType ,
67+ "Folders does not return generator as expected." ,
68+ )
5469folder = next (folder_gen )
55- assert isinstance (folder ,Folder )
56- assert folder .name == "Root Folder"
57- assert len (list (folder .list (item_type = ItemTypeEnum .SHAPEFILE )))>= 1
58- assert (
59- len (
60- [
61- i
62- for i in user .items (folder )
63- if i .title .startswith ("ntgrtn_tst_user_content_" )
64- ]
65- )
66- >= 2
70+ self .assertIsInstance (
71+ folder ,
72+ Folder ,
73+ "Folders generator did not yield a folder object as expected." ,
74+ )
75+ self .assertEqual (
76+ folder .name ,"Root Folder" ,"Folder is not named Root Folder as expected."
77+ )
78+ self .assertGreaterEqual (
79+ len (list (folder .list (item_type = ItemTypeEnum .SHAPEFILE .value ))),
80+ 1 ,
81+ "Folder does not have a least one shapefile." ,
82+ )
83+ root_folder_list = user .items (folder = folder ,max_items = - 1 )
84+ test_content_list = [
85+ i
86+ for i in root_folder_list
87+ if i .title .startswith ("ntgrtn_tst_user_content_" )
88+ ]
89+ self .assertEqual (
90+ len (test_content_list ),
91+ 2 ,
92+ "Folder does not have shapefile and source item as expected." ,
6793 )
6894pfolder = next (folder_gen )
6995self .assertIsNotNone (pfolder .properties ["id" ],"Folder must have ID." )
@@ -74,15 +100,27 @@ def test_user_groups(self):
74100user = next ((user for user in self .user_list if len (user .groups )> 0 ),None )
75101if not user :
76102self .skipTest ("No user who with groups configured." )
77- assert isinstance (user .groups [0 ],Group )
103+ self .assertIsInstance (
104+ user .groups [0 ],
105+ Group ,
106+ "Groups property does not return list of group objects." ,
107+ )
78108
79109def test_user_items (self ):
110+ if not self .user_list :
111+ self .skipTest ("No users with custom folders. Skipping." )
80112user = self .user_list [- 1 ]
81113f = [fld for fld in user .folders if len (list (user .items (fld )))> 0 ][0 ]
82114if not f :
83115self .skipTest (f"No items in any folders for{ user .username } ." )
84- assert isinstance (user .items (f ),GeneratorType )
85- assert isinstance (list (user .items (f ))[0 ],Item )
116+ self .assertIsInstance (
117+ user .items (f ),GeneratorType ,"Items method is not a generator as expected."
118+ )
119+ self .assertIsInstance (
120+ list (user .items (f ))[0 ],
121+ Item ,
122+ "Items generator did not return items as expected." ,
123+ )
86124
87125@classmethod
88126def tearDownClass (cls ):