def test_validate_body_and_status_do_not_match(assertion, validator_5, reporter_1): with vcr.use_cassette( "test_http_executor_validate_body_and_status_do_not_match" ) as cassette: validator_5.execute(reporter_1) assert len(cassette) == 1 r0 = cassette.requests[0] assert r0.url == "http://localhost:5000/foo/2" response = cassette.responses_of(r0)[0] assert response["status"]["code"] == 200 assert response["body"]["string"] == b'{"foo": 2, "bar": false}' if cassette.rewound: assert cassette.all_played assert assertion.call_count == 2 assert (call( "status_code", { "status_code": 201, "body": b'{"foo": 2' }, "http response status_code", reporter_1, ) in assertion.mock_calls) assert (call( "body", { "status_code": 201, "body": b'{"foo": 2' }, "http response body", reporter_1, ) in assertion.mock_calls)
def test_simulate_json_response_200(pyrandall_cli, vcr): with vcr.use_cassette("test_simulate_json_response_200") as cassette: result = pyrandall_cli.invoke(ARGV_RESPONSE_200) assert 'Usage: pyrandall' not in result.output assert result.exit_code == 0 assert len(cassette) == 1 r1 = cassette.requests[0] assert r1.path == "/v1/actions/produce-event" assert cassette.responses_of(r1)[0]["status"]["code"] == 204 assert cassette.all_played
def test_simulate_json_response_400(pyrandall_cli, vcr): with vcr.use_cassette("test_simulate_json_response_400") as cassette: result = pyrandall_cli.invoke(ARGV_RESPONSE_400) assert 'Usage: pyrandall' not in result.output assert result.exit_code == 1 assert len(cassette) == 1 r0 = cassette.requests[0] assert r0.path == "/cant_find_this" assert cassette.responses_of(r0)[0]["status"]["code"] == 404 assert cassette.all_played
def test_validate_makes_get(validator_1, reporter): with vcr.use_cassette("test_http_executor_validate_makes_get") as cassette: result = validator_1.execute(reporter) assert len(cassette) == 1 r0 = cassette.requests[0] assert r0.url == "http://localhost:5000/foo/1" assert r0.body is None response = cassette.responses_of(r0)[0] assert response["status"]["code"] == 404 if cassette.rewound: assert cassette.all_played assert result
def test_simulate_json_response_400(self): with vcr.use_cassette("test_simulate_json_response_400") as cassette: with self.assertRaises(SystemExit) as context: cli.start(ARGV_RESPONSE_400) assert len(cassette) == 1 r0 = cassette.requests[0] assert r0.path == "/cant_find_this" assert cassette.responses_of(r0)[0]["status"]["code"] == 404 assert cassette.all_played if context.exception.code == 2: self.fail(cli.argparse_error(ARGV_RESPONSE_400)) assert context.exception.code == 1
def test_simulate__post_201_repsonse(simulator_1, reporter): with vcr.use_cassette("test_http_executor_simulate_post_201") as cassette: result = simulator_1.execute(reporter) assert len(cassette) == 1 r0 = cassette.requests[0] assert r0.url == "http://localhost:5000/users" assert r0.body == b'{"foo": "bar"}' response = cassette.responses_of(r0)[0] assert response["status"]["code"] == 201 if cassette.rewound: assert cassette.all_played assert result
def test_simulate_json_response_200(self): with vcr.use_cassette("test_simulate_json_response_200") as cassette: with self.assertRaises(SystemExit) as context: cli.start(ARGV_RESPONSE_200) assert len(cassette) == 1 r1 = cassette.requests[0] assert r1.path == "/v1/actions/produce-event" assert cassette.responses_of(r1)[0]["status"]["code"] == 204 assert cassette.all_played if context.exception.code == 2: self.fail(cli.argparse_error(ARGV_RESPONSE_200)) # not all request had the expected status code (see assertions) assert context.exception.code == 0
def test_simulate_post_400_response(simulator_2, reporter): with vcr.use_cassette( "test_http_executor_simulate_post_400_response") as cassette: result = simulator_2.execute(reporter) assert len(cassette) == 1 r0 = cassette.requests[0] assert r0.url == "http://localhost:5000/users" assert r0.body is None response = cassette.responses_of(r0)[0] assert response["status"]["code"] == 400 if cassette.rewound: assert cassette.all_played assert not result
def test_validate__matches_body_not_status(validator_4, reporter): with vcr.use_cassette( "test_http_executor_validate__matches_body_and_status" ) as cassette: result = validator_4.execute(reporter) assert len(cassette) == 1 r0 = cassette.requests[0] assert r0.url == "http://localhost:5000/foo/2" response = cassette.responses_of(r0)[0] assert response["status"]["code"] == 200 assert response["body"]["string"] == b'{"foo": 2, "bar": false}' if cassette.rewound: assert cassette.all_played assert result is False
def test_simulate_post_200_and_400(simulator_3, reporter): with vcr.use_cassette( "test_http_executor_simulate_post_201_and_400") as cassette: result = simulator_3.execute(reporter) assert len(cassette) == 2 r0 = cassette.requests[0] assert r0.url == "http://localhost:5000/users" assert r0.body is None response = cassette.responses_of(r0)[0] assert response["status"]["code"] == 400 r1 = cassette.requests[1] assert r1.url == "http://localhost:5000/users" assert r1.body == b'{"foo": "bar"}' response = cassette.responses_of(r1)[0] assert response["status"]["code"] == 201 if cassette.rewound: assert cassette.all_played assert not result