def test_create_authentication_path(self): """Test that SSO path is created correctly for redirect""" datestring = datetime.datetime.now().strftime("%Y%m%d%H%M%S") username = "******" token = docebo_sso.create_token(username, datestring) auth_path = docebo_sso.create_authentication_path(username, docebo_sso.create_datestring(), token) url_parts = urlparse.urlparse(auth_path) self.assertEqual(url_parts.scheme, "http") self.assertEqual(url_parts.netloc, "test.docebosaas.com") self.assertEqual(url_parts.path, "/lms/index.php") query_params = url_parts.query.split("&") expected_query_params = set( [ "r=site%2Fsso", # %2F is the urlencoded value of '/' "modname=login", "op=confirm", "login_user=%s" % username, "time=%s" % datestring, "token=%s" % token, ] ) for param in query_params: self.assertTrue( param in expected_query_params, msg='Query param "%s" is not in our expected parameter list.' % param )
def test_create_authentication_path(self): """Test that SSO path is created correctly for redirect""" datestring = datetime.datetime.now().strftime('%Y%m%d%H%M%S') username = '******' token = docebo_sso.create_token(username, datestring) auth_path = docebo_sso.create_authentication_path( username, docebo_sso.create_datestring(), token ) url_parts = urlparse.urlparse(auth_path) self.assertEqual(url_parts.scheme, 'http') self.assertEqual(url_parts.netloc, 'test.docebosaas.com') self.assertEqual(url_parts.path, '/lms/index.php') query_params = url_parts.query.split('&') expected_query_params = set([ 'r=site%2Fsso', # %2F is the urlencoded value of '/' 'modname=login', 'op=confirm', 'login_user=%s' % username, 'time=%s' % datestring, 'token=%s' % token ]) for param in query_params: self.assertTrue( param in expected_query_params, msg='Query param "%s" is not in our expected parameter list.' % param )
def test_create_token(self): """Test that SSO token is correctly created """ username = "******" datestring = docebo_sso.create_datestring() sso_token = docebo_sso.create_token("batman", datestring) self.assertEqual(len(sso_token), 32) self.assertTrue(isinstance(sso_token, str)) token_hash = hashlib.md5() token_hash.update(username + ",") token_hash.update(datestring + ",") token_hash.update(docebo_sso.USER_KEYS["sso_secret"]) expected_token = token_hash.hexdigest() self.assertEqual(expected_token, sso_token)
def test_create_token(self): """Test that SSO token is correctly created """ username = '******' datestring = docebo_sso.create_datestring() sso_token = docebo_sso.create_token('batman', datestring) self.assertEqual(len(sso_token), 32) self.assertTrue(isinstance(sso_token, str)) token_hash = hashlib.md5() token_hash.update(username + ',') token_hash.update(datestring + ',') token_hash.update(docebo_sso.USER_KEYS['sso_secret']) expected_token = token_hash.hexdigest() self.assertEqual(expected_token, sso_token)
def test_create_datestring(self): """Test that the datestring is created correctly""" datestring = docebo_sso.create_datestring() expected = datetime.datetime.now().strftime("%Y%m%d%H%M%S") self.assertEqual(len(datestring), 14) self.assertAlmostEqual(int(datestring), int(expected))
def test_create_datestring(self): """Test that the datestring is created correctly""" datestring = docebo_sso.create_datestring() expected = datetime.datetime.now().strftime('%Y%m%d%H%M%S') self.assertEqual(len(datestring), 14) self.assertAlmostEqual(int(datestring), int(expected))