def testApplicationCache(self): a = Application() a.name = "Test App" a.client_secret = "abc" a.id = "test-id" a.created_by = "Nick" a.save() application_cache().load_from_db() self.assertIn(a, application_cache().all())
def testCorrectlySignedAuthVerifySignature(self): a = Application() a.id = "test_id" a.client_secret = "test_secret" parameters = OrderedDict() parameters['test_param_1'] = random.randint(0,100) parameters['test_param_2'] = ''.join(random.choice(string.ascii_uppercase + string.digits) for x in range(10)) parameters['signature'] = self.__build_signature(a.id, a.client_secret, parameters) r = RequestFactory().get("/test", data=parameters) self.assertEqual(a, verify_request(r, a)) # this is a valid request so the app should come back
def setUp(self): self.client = Client() self.user_finder = MockUserFinder() self.user = self.user_finder.find(id=12) a = Application() a.id = uuid.uuid4().hex a.name = "Test Application" a.created_by = self.user['id'] a.client_secret = uuid.uuid4().hex a.redirect_uri = "http://example.com/redirect" a.save() self.application = a
def testIncorrectlySignedAuthVerifySignature(self): a = Application() a.id = "test_id" a.client_secret = "test_secret" parameters = OrderedDict({ "test_param_1": random.randint(0,100), "test_param_2": ''.join(random.choice(string.ascii_uppercase + string.digits) for x in range(10)) }) parameters['signature'] = self.__build_signature(a.id, "bad_secret", parameters) r = RequestFactory().get("/test", parameters) # this throws an error since it isn't a valid signature self.assertRaises(AuthenticationError, lambda: verify_request(r, a))
def testInvalidateCacheView(self): a = Application() a.id = uuid.uuid4().hex a.client_secret = uuid.uuid4().hex a.super_application = True a.name = "Test Super App" a.redirect_uri = "/" a.created_by = "nick" a.save() sig = application_hasher(a, "secret") post_data = { 'uncache_type': 'user_request', 'user_id': 123 } resp = self.client.post("/cache/invalidate?client_id=%s&signature=%s&verify=%s" % (a.id, sig, "secret"), data=post_data) self.assertEqual('{"message": "OK"}', resp.content.decode())
def testApplicationHasher(self): a = Application() a.id = "abc" a.client_secret = "def" signature = application_hasher(a, "signature") self.assertEqual("11b2d248b0f026bf61d02dbc4d0a6edb", signature)