Beispiel #1
0
    def test_get_with_filters(self, mock_get_request_success):
        url = 'foo'
        user_id = 'test_client_01'
        user_secret = 'secret_secret_secret'

        api_client = APIClient(url,
                               user_id=user_id,
                               secret=user_secret,
                               token='foo')

        filters = [{
            'criteria': 'username',
            'value': 'mpalin',
            'operator': 'eq'
        }, {
            'criteria': 'is_lumberjack',
            'value': 'true',
            'operator': 'eq'
        }, {
            'criteria': 'is_okay',
            'value': 'true',
            'operator': 'eq'
        }]

        r = api_client.get('bar', filters=filters, no_refresh=True)
        assert r.status_code == 200
        assert r.params == {
            'filter':
            'username eq mpalin&is_lumberjack eq true&is_okay eq true'
        }
Beispiel #2
0
    def test_get_success(self, mock_get_request_success):
        url = 'foo'
        user_id = 'test_client_01'
        user_secret = 'secret_secret_secret'

        api_client = APIClient(url,
                               user_id=user_id,
                               secret=user_secret,
                               token='foo')

        r = api_client.get('bar', no_refresh=True)
        assert r.url == 'foo/bar'
        assert r.status_code == 200
Beispiel #3
0
    def test_expired_token_refresh(self, mock_get_request, mock_login_request):
        url = 'foo'
        user_id = 'tjones'
        user_secret = 'nobody_expects_the_spanih_inquisition'
        token = jwt.encode({'exp': datetime.utcnow()}, 'secret')

        api_client = APIClient(url,
                               user_id=user_id,
                               secret=user_secret,
                               headers={'foo': 'bar'},
                               token=token)

        api_client.get('foo')
Beispiel #4
0
    def test_get_with_filters_bad_format(self, mock_get_request):
        url = 'foo'
        user_id = 'test_client_01'
        user_secret = 'secret_secret_secret'

        api_client = APIClient(url,
                               user_id=user_id,
                               secret=user_secret,
                               token='foo')

        filters = [{}]

        with pytest.raises(ValueError):
            api_client.get('bar', filters=filters, no_refresh=True)
Beispiel #5
0
    def test_post_existing(self, mock_post_request_existing, mock_put_request):
        url = 'foo'
        user_id = 'eidle'
        user_secret = 'secret_secret_secret'
        token = jwt.encode({'exp': datetime.utcnow() + timedelta(days=100.00)},
                           'secret')

        api_client = APIClient(url,
                               user_id=user_id,
                               secret=user_secret,
                               token=token)

        r = api_client.post('bar', data={'foo': 'bar'}, update_if_exists=True)
        assert r.status_code == 200
        assert r.text == 'Record Updated'
Beispiel #6
0
    def test_get_with_arbitrary_params(self, mock_get_request_success):
        url = 'foo'
        user_id = 'test_client_01'
        user_secret = 'secret_secret_secret'

        api_client = APIClient(url,
                               user_id=user_id,
                               secret=user_secret,
                               token='foo')

        params = {'username': '******'}

        r = api_client.get('bar', params=params, no_refresh=True)
        assert r.status_code == 200
        assert r.params == params
Beispiel #7
0
    def test_delete(self, mock_delete_request):
        url = 'foo'
        user_id = 'test_client_01'
        user_secret = 'secret_secret_secret'
        token = jwt.encode({'exp': datetime.utcnow() + timedelta(days=100.00)},
                           'secret')

        api_client = APIClient(url,
                               user_id=user_id,
                               secret=user_secret,
                               token=token)

        r = api_client.delete('bar')

        assert r.status_code == 200
        assert r.text == "OK"
Beispiel #8
0
    def test_put_request_not_exists(self, mock_put_request_not_exists,
                                    mock_post_request):
        url = 'foo'
        user_id = 'test_client_01'
        user_secret = 'secret_secret_secret'
        token = jwt.encode({'exp': datetime.utcnow() + timedelta(days=100.00)},
                           'secret')

        api_client = APIClient(url,
                               user_id=user_id,
                               secret=user_secret,
                               token=token)

        data = {'username': '******'}

        r = api_client.put('bar',
                           data=data,
                           create_if_not_exists=True,
                           no_refresh=True)

        assert r.status_code == 201
        assert r.text == "record created"
Beispiel #9
0
    def test_create_API_client(self, mock_login_request):
        url = 'foo'
        user_id = 'eidle'
        user_secret = 'secret_secret_secret'

        api_client = APIClient(url,
                               user_id=user_id,
                               secret=user_secret,
                               headers={'foo': 'bar'})

        assert api_client.headers[
            'Authorization'] == "Bearer test_access_token"
        assert api_client.headers['foo'] == 'bar'
Beispiel #10
0
 def test_get_access_token_error_if_not_authenticated(
         self, mock_login_request_fail):
     with pytest.raises(KeyError):
         APIClient.get_auth_token('foo.com/api', 'login', 'my_id',
                                  'my_secret')
Beispiel #11
0
 def test_get_access_token(self, mock_login_request):
     access_token = APIClient.get_auth_token('foo.com/api', 'login',
                                             'my_id', 'my_secret')
     assert access_token == 'test_access_token'
Beispiel #12
0
 def test_create_no_creds_not_allowed(self):
     with pytest.raises(ValueError):
         APIClient('foo.com')