I'm trying to convert some code I have to loop through and check an array of hostnames with pytest. I'm getting a chicken-and-egg problem, where the test function is complaining about values not being a proper value, but the place it would be initialized with a value would be in main, past the function definition and its parametrize decorator is. While this is expected behavior, it's not in the list of hostnames for the use cases I want to run through in the result_for dict. Any thoughts on how I can get it to run and still have pytest run the validation for each the hostnames in result_for?
Specifically, I want to see one dot for each hostname. Currently, the code fails after the one failed test, even before it gets to processing the hostnames in results_for (see code below).
Specifically, I want to see one dot for each hostname. Currently, the code fails after the one failed test, even before it gets to processing the hostnames in results_for (see code below).
########################################################## <snip> initialization of parameters ... <snip> retval = "" # Dummy value, to be assigned later hostname = "" @pytest.mark.parametrize("result_for, flds_ref, cfg, results, retval",\ [ (result_for, flds_ref, cfg, results, retval) ]) def test_GetAppFromHostname( result_for, flds_ref, cfg, results, retval) : assert dt.hostname.GetAppFromHostname(hostname, flds_ref, cfg, results) == retval if __name__ == '__main__': hostindex = 0 for hostname, retval in result_for.items() : hostindex = hostindex +1 details = {"id" : hostindex, "hostname" : hostname, "errs" : [], "valid_hostname" : "yes", "breakdown" : []} results["details"].append(details) test_GetAppFromHostname( result_for, flds_ref, cfg, results ) dtv.dtvlog.EndLog(start_time, results) quit()