@@ -235,11 +235,20 @@ def mockdataset(url, datadict):
235235 404 ,
236236 '{"success": false, "error": {"message": "TEST ERROR: Not show", "__type": "TEST ERROR: Not Show Error"}, "help": "http://test-data.humdata.org/api/3/action/help_show?name=package_show"}' ,
237237 )
238- result = json .dumps (dataset_resultdict )
238+ if datadict ["id" ] in (
239+ "1234" ,
240+ "6f36a41c-f126-4b18-aaaf-6c2ddfbc5d4d" ,
241+ "test_dataset" ,
242+ ):
243+ result = json .dumps (dataset_resultdict )
244+ return MockResponse (
245+ 200 ,
246+ '{"success": true, "result": %s, "help": "http://test-data.humdata.org/api/3/action/help_show?name=package_show"}'
247+ % result ,
248+ )
239249 return MockResponse (
240- 200 ,
241- '{"success": true, "result": %s, "help": "http://test-data.humdata.org/api/3/action/help_show?name=package_show"}'
242- % result ,
250+ 404 ,
251+ '{"success": false, "error": {"message": "Not found", "__type": "Not Found Error"}, "help": "http://test-data.humdata.org/api/3/action/help_show?name=package_show"}' ,
243252 )
244253
245254
@@ -1070,15 +1079,50 @@ def test_get_api_url(self, configuration, read):
10701079 del resource ["id" ]
10711080 assert resource .get_api_url () is None
10721081
1073- def test_get_resource_id (self , configuration , read ):
1082+ def test_get_resource_id (self , configuration , post_dataset ):
10741083 resources = [
1075- {"id" : "abcd" , "name" : "test_resource " , "format" : "CSV" },
1076- {"id" : "efgh" , "name" : "test_resource2 " , "format" : "CSV" },
1077- {"id" : "ijkl" , "name" : "test_resource2 " , "format" : "XLSX" },
1084+ {"id" : "abcd" , "name" : "Resource1 " , "format" : "CSV" },
1085+ {"id" : "efgh" , "name" : "Resource2 " , "format" : "CSV" },
1086+ {"id" : "ijkl" , "name" : "Resource3 " , "format" : "XLSX" },
10781087 ]
10791088 dataset = Dataset ({"id" : "1234" , "name" : "test_dataset" , "format" : "CSV" })
10801089 dataset .add_update_resources (resources )
10811090
1082- resource = Resource ({"name" : "test_resource2" , "format" : "CSV" })
1091+ # Uses resource["name"] and resource["format"]
1092+ resource = Resource ({"name" : "Resource2" , "format" : "CSV" })
1093+ result = resource ._get_resource_id (dataset = dataset )
1094+ assert result == "efgh"
1095+
1096+ # Uses resource["id"]
10831097 result = resource ._get_resource_id (dataset = dataset )
10841098 assert result == "efgh"
1099+
1100+ # Uses dataset["name"]
1101+ del resource ["id" ]
1102+ del resource ["package_id" ]
1103+ del dataset ["id" ]
1104+ result = resource ._get_resource_id (dataset = dataset )
1105+ assert result == "3d777226-96aa-4239-860a-703389d16d1f"
1106+
1107+ # Uses resource["package id"]
1108+ del resource ["id" ]
1109+ result = resource ._get_resource_id ()
1110+ assert result == "3d777226-96aa-4239-860a-703389d16d1f"
1111+
1112+ # Uses resource["package id"]
1113+ del resource ["id" ]
1114+ resource ["package_id" ] = "NOTFOUND"
1115+ result = resource ._get_resource_id ()
1116+ assert result is None
1117+
1118+ # resource["package id"] != dataset["id"]
1119+ resource ["package_id" ] = "NOTFOUND"
1120+ result = resource ._get_resource_id (dataset = dataset )
1121+ assert result == "3d777226-96aa-4239-860a-703389d16d1f"
1122+
1123+ # Invalid dataset
1124+ del resource ["id" ]
1125+ del resource ["package_id" ]
1126+ del dataset ["name" ]
1127+ with pytest .raises (HDXError ):
1128+ resource ._get_resource_id (dataset = dataset )
0 commit comments