Exemple #1
0
    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
            )
Exemple #2
0
  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
      )
Exemple #3
0
    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)
Exemple #4
0
  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)