Esempio n. 1
0
    def test_authenticate_refresh_credentials(self, requests_mock,
                                              mock_home_dir):

        client_credentials_provider = ClientCredentialsProvider(config)
        auth = Authenticate(config=config,
                            token_provider=client_credentials_provider)

        auth.file_cache.credentials_cache_enabled = True

        cached_credentials = {
            "provider": "ClientCredentialsProvider",
            "access_token": from_cache_not_expired_token,
            "refresh_token": from_cache_not_expired_token,
        }

        auth.file_cache.write_credentials(json.dumps(cached_credentials))

        response = json.dumps(client_credentials_response)
        matcher = re.compile(token_endpoint)
        requests_mock.register_uri("POST",
                                   matcher,
                                   text=response,
                                   status_code=204)

        auth.login()
        assert auth.access_token == cached_credentials["access_token"]
        assert auth.refresh_token == cached_credentials["refresh_token"]
Esempio n. 2
0
 def __init__(self, config=None, auth=None, env=None):
     self.config = config
     if self.config is None:
         log.info("Initializing configuration object")
         self.config = Config(env=env)
     self.auth = auth
     if self.auth is None:
         log.info("Initializing auth object")
         self.auth = Authenticate(self.config)
Esempio n. 3
0
    def test_authenticate_cached_credentials(self, mock_home_dir):
        client_credentials_provider = ClientCredentialsProvider(config)
        auth = Authenticate(config=config,
                            token_provider=client_credentials_provider)

        auth.file_cache.credentials_cache_enabled = True
        cached_credentials = {
            "provider": "ClientCredentialsProvider",
            "access_token": from_cache_not_expired_token,
            "refresh_token": from_cache_not_expired_token,
        }

        auth.file_cache.write_credentials(json.dumps(cached_credentials))
        auth.login()
        assert auth.access_token == cached_credentials["access_token"]
        assert auth.refresh_token == cached_credentials["refresh_token"]
Esempio n. 4
0
    def test_authenticate_cache_disabled(self, requests_mock, mock_home_dir):
        client_credentials_provider = ClientCredentialsProvider(config)
        auth = Authenticate(config=config,
                            token_provider=client_credentials_provider)

        auth.file_cache.credentials_cache_enabled = False

        response = json.dumps(client_credentials_response)
        matcher = re.compile(token_endpoint)
        requests_mock.register_uri("POST",
                                   matcher,
                                   text=response,
                                   status_code=204)

        auth.login()
        assert auth.access_token == client_credentials_response["access_token"]
        assert auth.refresh_token == client_credentials_response[
            "refresh_token"]
Esempio n. 5
0
    def test_authenticate_fail(self, requests_mock, mock_home_dir):
        client_credentials_provider = ClientCredentialsProvider(
            config, client_id="wrong_id")
        auth = Authenticate(config=config,
                            token_provider=client_credentials_provider)

        response = json.dumps({
            "error": "authenitcation error",
            "error_description": "No such client"
        })
        matcher = re.compile(token_endpoint)
        requests_mock.register_uri("POST",
                                   matcher,
                                   text=response,
                                   status_code=204)

        try:
            auth.login()
        except ApiAuthenticateError:
            assert True
Esempio n. 6
0
class SDK(object):
    def __init__(self, config=None, auth=None, env=None):
        self.config = config
        if self.config is None:
            log.info("Initializing configuration object")
            self.config = Config(env=env)
        self.auth = auth
        if self.auth is None:
            log.info("Initializing auth object")
            self.auth = Authenticate(self.config)

    def login(self):
        self.auth.login()

    def headers(self):
        headers = {}
        if self.auth.token_provider:
            headers["Authorization"] = f"Bearer {self.auth.access_token}"
        return headers

    def post(self, url, data, **kwargs):
        log.info(f"SDK:Posting resource to url: {url}")
        result = requests.post(url,
                               data=json.dumps(data),
                               headers=self.headers(),
                               **kwargs)
        result.raise_for_status()
        return result

    def get(self, url, **kwargs):
        log.info(f"SDK:Getting resource from url: {url}")
        result = requests.get(url, headers=self.headers(), **kwargs)
        result.raise_for_status()
        return result

    def delete(self, url, **kwargs):
        log.info(f"SDK:Deleting resource from url: {url}")
        result = requests.delete(url, headers=self.headers(), **kwargs)
        result.raise_for_status()
        return result
Esempio n. 7
0
import json
import pytest
from requests.exceptions import HTTPError
from origo.event.post_event import PostEvent
from origo.auth.auth import Authenticate
from origo.config import Config
from origo.file_cache import FileCache
from tests.origio.auth.client_credentials_test_utils import (
    default_test_client_credentials, )

config = Config()
file_cache = FileCache(config)
file_cache.credentials_cache_enabled = False
auth_default = Authenticate(config, file_cache=file_cache)
auth_default.client_credentials = default_test_client_credentials

event_collector_ok_response = {"message": "Ok"}
event_collector_error_response = {"message": "Bad Request"}


class TestPostEvent:
    def test_post_event_object(self, requests_mock):
        post_event = PostEvent(config=config, auth=auth_default)
        dataset_id, version_id = "test", "1"
        event = {"yo": "bro"}
        expected_url = (
            f"{post_event.event_collector_url}/event/{dataset_id}/{version_id}"
        )
        requests_mock.register_uri(
            "POST",
            expected_url,
Esempio n. 8
0
import json
import re
from requests.exceptions import HTTPError

from origo.data.dataset import Dataset
from origo.auth.auth import Authenticate
from origo.config import Config
from origo.file_cache import FileCache

config = Config()
file_cache = FileCache(config)
file_cache.credentials_cache_enabled = False
auth_default = Authenticate(config, file_cache=file_cache)


class TestDataset:
    def test_createDataset(self, requests_mock):
        ds = Dataset(config=config, auth=auth_default)
        response = json.dumps({"Id": "test-dataset-createDataset"})
        matcher = re.compile("datasets")
        requests_mock.register_uri("POST",
                                   matcher,
                                   text=response,
                                   status_code=200)
        body = ds.create_dataset({"Id": "test-dataset-createDataset"})
        assert body["Id"] == "test-dataset-createDataset"

    def test_sdk_no_auth_headers(self):
        del config.config["client_id"]
        del config.config["client_secret"]
        ds = Dataset(config=config)