@@ -399,3 +399,55 @@ def test_set_sitelink_invalid(self, mocker):
399399 self .assertEqual (commands [0 ].operation , BatchCommand .Operation .SET_SITELINK )
400400 self .assertEqual (commands [0 ].status , BatchCommand .STATUS_ERROR )
401401 self .assertEqual (commands [0 ].error , BatchCommand .Error .SITELINK_INVALID )
402+
403+ @requests_mock .Mocker ()
404+ def test_all_errors (self , mocker ):
405+ ApiMocker .wikidata_property_data_types (mocker )
406+ ApiMocker .is_autoconfirmed (mocker )
407+ ApiMocker .item_empty (mocker , "Q1234" )
408+ ApiMocker .item_empty (mocker , "Q5" )
409+ ApiMocker .item_empty (mocker , "Q7" )
410+ ApiMocker .property_data_type (mocker , "P5" , "quantity" )
411+ ApiMocker .sitelink_invalid (mocker , "Q1234" , "ptwikix" )
412+ ApiMocker .patch_item_fail (mocker , "Q5" , 400 , {"code" : "code" , "message" : "message" })
413+ ApiMocker .patch_item_fail (mocker , "Q7" , 500 , {"code" : "code" , "message" : "message" })
414+ ApiMocker .statements (mocker , "Q9" , {})
415+ ApiMocker .statements (mocker , "Q11" , {
416+ "P5" : [{
417+ "id" : "Q1234$abcdefgh-uijkl" ,
418+ "value" : {
419+ "type" : "value" ,
420+ "content" : {"amount" : "+32" , "unit" : "1" },
421+ },
422+ }],
423+ })
424+ batch = self .parse ("""
425+ CREATE_PROPERTY|url
426+ Q1234|P5|12
427+ Q1234|Sptwikix|"Cool article"
428+ Q5|P5|123
429+ Q7|P5|321
430+ -Q9|P5|123
431+ -Q11|P5|123
432+ """ )
433+ batch .combine_commands = True
434+ batch .run ()
435+ self .assertEqual (batch .status , Batch .STATUS_DONE )
436+ commands = batch .commands ()
437+ self .assertEqual (commands [0 ].operation , BatchCommand .Operation .CREATE_PROPERTY )
438+ self .assertEqual (commands [0 ].error , BatchCommand .Error .OP_NOT_IMPLEMENTED )
439+ self .assertEqual (commands [1 ].operation , BatchCommand .Operation .SET_STATEMENT )
440+ self .assertEqual (commands [1 ].error , BatchCommand .Error .COMBINING_COMMAND_FAILED )
441+ self .assertEqual (commands [2 ].operation , BatchCommand .Operation .SET_SITELINK )
442+ self .assertEqual (commands [2 ].error , BatchCommand .Error .SITELINK_INVALID )
443+ self .assertEqual (commands [3 ].operation , BatchCommand .Operation .SET_STATEMENT )
444+ self .assertEqual (commands [3 ].error , BatchCommand .Error .API_USER_ERROR )
445+ self .assertEqual (commands [4 ].operation , BatchCommand .Operation .SET_STATEMENT )
446+ self .assertEqual (commands [4 ].error , BatchCommand .Error .API_SERVER_ERROR )
447+ self .assertEqual (commands [5 ].operation , BatchCommand .Operation .REMOVE_STATEMENT_BY_VALUE )
448+ self .assertEqual (commands [5 ].error , BatchCommand .Error .NO_STATEMENTS_PROPERTY )
449+ self .assertEqual (commands [6 ].operation , BatchCommand .Operation .REMOVE_STATEMENT_BY_VALUE )
450+ self .assertEqual (commands [6 ].error , BatchCommand .Error .NO_STATEMENTS_VALUE )
451+ self .assertEqual (len (commands ), 7 )
452+ for command in commands :
453+ self .assertEqual (command .status , BatchCommand .STATUS_ERROR )
0 commit comments