def test_has_expired(self):
     obj = AccessToken()
     self.assertIsNone(obj.expires_at)
     self.assertTrue(obj.has_expired)
     for i in range(-100, 100, 10):
         obj.expires_at = datetime.datetime.now() + datetime.timedelta(milliseconds=i)
         self.assertEqual(obj.has_expired, obj.expires_at < datetime.datetime.now())
 def test_set_expiry(self):
     timestamp = datetime.datetime.now() - datetime.timedelta(seconds=10)
     obj = AccessToken(expires_at=timestamp)
     self.assertEqual(obj.expires_at, timestamp)
     self.assertTrue(obj.has_expired)
     with mock.patch('hipchat.models.tz_now', lambda: timestamp):
         obj.set_expiry(10)
         self.assertFalse(obj.has_expired)
         self.assertEqual(obj.expires_at, timestamp + datetime.timedelta(seconds=10))
 def test_parse_json(self):
     data = {
         'access_token': '5236346233724572457245gdgreyt345yreg',
         'expires_in': 431999999,
         'group_id': 123,
         'group_name': 'Example Company',
         'scope': 'send_notification',
         'token_type': 'bearer'
     }
     obj = AccessToken()
     timestamp = datetime.datetime.now() - datetime.timedelta(seconds=10)
     with mock.patch('hipchat.models.tz_now', lambda: timestamp):
         obj.parse_json(data)
         self.assertEqual(obj.access_token, data['access_token'])
         self.assertEqual(obj.group_id, data['group_id'])
         self.assertEqual(obj.group_name, data['group_name'])
         self.assertEqual(obj.scope, data['scope'])
         self.assertEqual(
             obj.expires_at,
             timestamp + datetime.timedelta(seconds=data['expires_in'])
         )
 def test_save(self):
     obj = AccessToken(app=self.app, install=self.install, group_id=123)
     self.assertEqual(obj.save(), obj)
     self.assertIsNotNone(obj.id)