コード例 #1
0
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)
コード例 #2
0
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
コード例 #3
0
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
コード例 #4
0
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
コード例 #5
0
    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
コード例 #6
0
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
コード例 #7
0
    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
コード例 #8
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
コード例 #9
0
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
コード例 #10
0
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