def test_token_refresh():
    update_called = []

    # hacky way to test side effect
    def token_updater(token):
        update_called.append(1)

    client = OuraClient(client_id="test_id",
                        access_token="token",
                        refresh_callback=token_updater)
    adapter.register_uri(
        requests_mock.POST,
        requests_mock.ANY,
        status_code=401,
        text=json.dumps({
            "access_token": "fake_return_access_token",
            "refresh_token": "fake_return_refresh_token",
        }),
    )
    adapter.register_uri(
        requests_mock.GET,
        requests_mock.ANY,
        status_code=401,
        text=json.dumps({"a": "b"}),
    )

    client._auth_handler._session.mount(client.API_ENDPOINT, adapter)
    try:
        client.user_info()
    except Exception:
        pass
    assert len(update_called) == 1
Exemplo n.º 2
0
def test_token_refresh():
    update_called = []

    # hacky way to test side effect
    def token_updater(token):
        update_called.append(1)

    client = OuraClient('test_id',
                        access_token='token',
                        refresh_callback=token_updater)
    adapter.register_uri(requests_mock.POST,
                         requests_mock.ANY,
                         status_code=401,
                         text=json.dumps({
                             'access_token':
                             'fake_return_access_token',
                             'refresh_token':
                             'fake_return_refresh_token'
                         }))
    adapter.register_uri(requests_mock.GET,
                         requests_mock.ANY,
                         status_code=401,
                         text=json.dumps({'a': 'b'}))

    client._session.mount(client.API_ENDPOINT, adapter)
    try:
        resp = client.user_info()
    except:
        pass
    assert len(update_called) == 1
def test_summary_url():
    client = OuraClient("test_id")
    url = client._build_summary_url(start="start-date",
                                    end=None,
                                    summary_type="sleep")
    parsed_url = urlparse(url)
    params = parse_qs(parsed_url.query)
    assert "end" not in params.keys()

    url2 = client._build_summary_url(start="start-date",
                                     end="end_date",
                                     summary_type="sleep")
    parsed_url = urlparse(url2)
    params = parse_qs(parsed_url.query)
    assert "end" in params.keys()
Exemplo n.º 4
0
def test_summary_url():
    client = OuraClient('test_id')
    url = client._build_summary_url(start='start-date',
                                    end=None,
                                    datatype='sleep')
    parsed_url = urlparse(url)
    params = parse_qs(parsed_url.query)
    assert 'end' not in params.keys()

    url2 = client._build_summary_url(start='start-date',
                                     end='end_date',
                                     datatype='sleep')
    parsed_url = urlparse(url2)
    params = parse_qs(parsed_url.query)
    assert 'end' in params.keys()
Exemplo n.º 5
0
def pull_oura_data():
    if oura_connected():
        days_back = int(config.get('oura', 'days_back'))

        token_dict = current_token_dict()
        oura = OuraClient(client_id=client_id,
                          client_secret=client_secret,
                          access_token=token_dict['access_token'],
                          refresh_token=token_dict['refresh_token'],
                          refresh_callback=save_oura_token)
        df_readiness_summary = pull_readiness_data(oura, days_back)
        df_readiness_summary.to_csv('readiness.csv', sep=',')
        df_activity_summary, df_activity_samples = pull_activity_data(
            oura, days_back)
        df_sleep_summary, df_sleep_samples = pull_sleep_data(oura, days_back)

        insert_readiness_data(df_readiness_summary, days_back)
        insert_activity_data(df_activity_summary, df_activity_samples,
                             days_back)
        insert_sleep_data(df_sleep_summary, df_sleep_samples, days_back)

        # # Generate correlation table - Depricated, no longer storing in table
        # generate_oura_correlations(lookback_days=9999)

        return df_sleep_summary.index.max() == df_readiness_summary.index.max(
        )  # == df_activity_summary.index.max()
Exemplo n.º 6
0
def getOuraClient(envFile):
    client_id = os.getenv('OURA_CLIENT_ID')
    client_secret = os.getenv('OURA_CLIENT_SECRET')
    access_token = os.getenv('OURA_ACCESS_TOKEN')
    refresh_token = os.getenv('OURA_REFRESH_TOKEN')
    refresh_callback = lambda x: appendFile(envFile, x)

    auth_client = OuraClient(client_id=client_id,
                             client_secret=client_secret,
                             access_token=access_token,
                             refresh_token=refresh_token,
                             refresh_callback=refresh_callback)

    return auth_client
Exemplo n.º 7
0
def oura_connected():
    token_dict = current_token_dict()
    try:
        if token_dict:
            oura = OuraClient(client_id=client_id,
                              client_secret=client_secret,
                              access_token=token_dict['access_token'],
                              refresh_token=token_dict['refresh_token'],
                              refresh_callback=save_oura_token)
            app.server.logger.debug('Oura Connected')
            return True
    except BaseException as e:
        app.server.logger.error('Oura not connected')
        app.server.logger.error(e)
        return False
Exemplo n.º 8
0
def pull_oura_data():
    if oura_connected():
        days_back = int(config.get('oura', 'days_back'))

        token_dict = current_token_dict()
        oura = OuraClient(client_id=client_id,
                          client_secret=client_secret,
                          access_token=token_dict['access_token'],
                          refresh_token=token_dict['refresh_token'],
                          refresh_callback=save_oura_token)
        df_readiness_summary = pull_readiness_data(oura, days_back)
        df_activity_summary, df_activity_samples = pull_activity_data(
            oura, days_back)
        df_sleep_summary, df_sleep_samples = pull_sleep_data(oura, days_back)

        insert_readiness_data(df_readiness_summary, days_back)
        insert_activity_data(df_activity_summary, df_activity_samples,
                             days_back)
        insert_sleep_data(df_sleep_summary, df_sleep_samples, days_back)

        return df_sleep_summary.index.max() == df_readiness_summary.index.max(
        )  # == df_activity_summary.index.max()
Exemplo n.º 9
0
def get_self():
    pat = os.getenv("OURA_PAT")
    client = OuraClient(personal_access_token=pat)
    user_info = client.user_info()
    print(user_info)