示例#1
0
    def test_reset_password(self):
        response = Mock()
        response.status_code = 200
        with patch('requests.post', return_value=response) as post:
            result = BedditClient.reset_password('*****@*****.**')
            self.assertTrue(result)

            post.assert_called_once_with(
                BedditClient.build_full_path('/api/v1/user/password_reset'),
                data={'email': '*****@*****.**'})
示例#2
0
    def test_get_sleep(self):
        client = self._default_client
        timestamp = 1471761649

        endpoint = BedditClient.build_full_path('/api/v1/user/10000/sleep')
        response = Mock()
        response.status_code = 200
        sleep_object = json.load(
            open(os.path.join(BASE_DIR, 'fixtures/sleep.json')))
        response.json = lambda: sleep_object
        with patch('requests.get', return_value=response) as get:
            sleeps = client.get_sleeps(
                start=datetime.datetime.utcfromtimestamp(timestamp),
                end=datetime.datetime.utcfromtimestamp(timestamp),
                limit=10,
                reverse=True)
            self.assertEqual(len(sleeps), 1)
            self.assertEqual(type(sleeps[0]), Sleep)

            args, kwargs = get.call_args
            self.assertEqual(args[0], endpoint)
            self.assertDictEqual(
                kwargs['params'], {
                    'start_date': '2016-08-21',
                    'end_date': '2016-08-21',
                    'limit': 10,
                    'reverse': 'yes'
                })
示例#3
0
    def test_get_group(self):
        client = self._default_client

        endpoint = BedditClient.build_full_path('/api/v1/user/10000/group')
        response = Mock()
        response.status_code = 200
        group_object = json.load(
            open(os.path.join(BASE_DIR, 'fixtures/group.json')))
        response.json = lambda: [group_object]
        with patch('requests.get', return_value=response) as get:
            groups = client.get_groups()
            self.assertEqual(type(groups[0]), Group)

            args = get.call_args[0]
            self.assertEqual(args[0], endpoint)
示例#4
0
    def test_update_user(self):
        client = self._default_client

        endpoint = BedditClient.build_full_path('/api/v1/user/10000')
        response = Mock()
        response.status_code = 200
        user_object = json.load(
            open(os.path.join(BASE_DIR, 'fixtures/user.json')))
        response.json = lambda: user_object
        with patch('requests.put', return_value=response) as put:
            user = client.update_user(name='foo')
            self.assertEqual(type(user), User)

            args = put.call_args[0]
            self.assertEqual(args[0], endpoint)
示例#5
0
    def test_remove_group_invite(self):
        client = self._default_client

        endpoint = BedditClient.build_full_path(
            '/api/v1/group/200/member/10000/remove')
        response = Mock()
        response.status_code = 200
        group_object = json.load(
            open(os.path.join(BASE_DIR, 'fixtures/group.json')))
        response.json = lambda: [group_object]
        with patch('requests.post', return_value=response) as post:
            groups = client.remove_group_invite(group_id=200, user_id=10000)
            self.assertEqual(type(groups[0]), Group)

            args = post.call_args[0]
            self.assertEqual(args[0], endpoint)
示例#6
0
    def test_invite_to_group(self):
        client = self._default_client

        endpoint = BedditClient.build_full_path('/api/v1/group/new/invite')
        response = Mock()
        response.status_code = 200
        group_object = json.load(
            open(os.path.join(BASE_DIR, 'fixtures/group.json')))
        response.json = lambda: [group_object]
        with patch('requests.post', return_value=response) as post:
            groups = client.invite_to_group(email="*****@*****.**")
            self.assertEqual(type(groups[0]), Group)

            args, kwargs = post.call_args
            self.assertEqual(args[0], endpoint)
            self.assertDictEqual(kwargs['data'], {'email': '*****@*****.**'})
示例#7
0
 def _inner(self, *args, **kwargs):
     response = Mock()
     response.json.side_effect = lambda: {
         'user': 10000,
         'access_token': 'dummytoken'
     }
     response.status_code = 200
     payload = {
         'grant_type': 'password',
         'username': '******',
         'password': '******'
     }
     with patch('requests.post', return_value=response) as post:
         retval = testcase(self, *args, **kwargs)
         post.assert_called_with(
             BedditClient.build_full_path('api/v1/auth/authorize'),
             data=payload)
         return retval
示例#8
0
    def test_get_session(self):
        client = self._default_client
        timestamp = 1471761649

        endpoint = BedditClient.build_full_path('/api/v1/user/10000/session')
        response = Mock()
        response.status_code = 200
        session_object = json.load(
            open(os.path.join(BASE_DIR, 'fixtures/session.json')))
        response.json = lambda: session_object
        dt = datetime.datetime.fromtimestamp(timestamp)
        with patch('requests.get', return_value=response) as get:
            sessions = client.get_sessions(updated_after=dt)
            self.assertEqual(len(sessions), 1)
            self.assertEqual(type(sessions[0]), Session)

            args, kwargs = get.call_args
            self.assertEqual(args[0], endpoint)
            self.assertDictEqual(kwargs['params'],
                                 {'updated_after': timestamp})
示例#9
0
 def _default_client(self):
     return BedditClient('username', 'password')
from datetime import datetime, timedelta
from beddit.client import BedditClient
from beddit.sleep import SleepStage
import requests, json

# Change these to your own values
exist_access_token = ''
beddit_username = ''
beddit_password = ''
days_to_migrate = 7

# read in data from Beddit API
client=BedditClient(beddit_username, beddit_password)
end_date = datetime.today()
start_date = end_date-timedelta(days=days_to_migrate)
sleeps = client.get_sleeps(start=start_date, end=end_date)

# extract Exist-compatible variables and convert to a JSON structure 
json_data=[]
for sleep in sleeps:
    data_date=sleep.date.strftime('%Y-%m-%d')

    time_asleep_mins = int((sleep.property.stage_duration_S+sleep.property.stage_duration_R)/60)

    bedtime = sleep.session_range_start
    if (bedtime.hour > 12):
        noon=bedtime.replace(hour=12, minute=0, second=0)
    else:
        yesterday=bedtime-timedelta(days=1)
        noon=bedtime.replace(year=yesterday.year, month=yesterday.month, day=yesterday.day, hour=12, minute=0, second=0)   
    bedtime_since_noon_mins=int((bedtime-noon).seconds/60)