import falcon import pytest from falcon import testing from dapd_transformation_service.entities.worker_control import ConsumerStateEnum def test_get_consumer_state(client, mocker): expected = 'foo' mocker.patch( 'dapd_transformation_service.services.consumer_state.ConsumerStateService.' 'get_consumer_state', return_value=expected ) expected = {'state': expected} result: testing.Result = client.simulate_get('/api/v1/consumer/') assert result.status == falcon.HTTP_200 assert result.json == expected @pytest.mark.parametrize('state', [ConsumerStateEnum.DISABLED, ConsumerStateEnum.ENABLED]) def test_post_consumer_state(client, mocker, state): service_method_mock = mocker.patch( 'dapd_transformation_service.services.consumer_state.ConsumerStateService.' 'set_consumer_state', ) request_data = {'state': state} result: testing.Result = client.simulate_post('/api/v1/consumer/', json=request_data) assert result.status == falcon.HTTP_204 service_method_mock.assert_called_once_with(state) @pytest.mark.parametrize('request_data', [ {'state': ConsumerStateEnum.UNKNOWN}, {'state': 'foo'}, {'state': -123}, 'foo', -123, ]) # yapf: disable def test_post_consumer_state__invalid_request(client, mocker, request_data): service_method_mock = mocker.patch( 'dapd_transformation_service.services.consumer_state.ConsumerStateService.' 'set_consumer_state', ) result: testing.Result = client.simulate_post('/api/v1/consumer/', json=request_data) assert result.status == falcon.HTTP_400 assert not service_method_mock.called