def get_submission_id(self): # Only valid after self.execute() # Parse submission ID out of response. p = self.browser.geturl().split("?")[-1] try: submission_id = decrypt_number(p) except Exception: return None return submission_id
def get_submission_id(self): # Only valid after self.execute() # Parse submission ID out of redirect. if self.redirected_to is None: return None p = self.redirected_to.split("?") if len(p) != 2: return None try: submission_id = decrypt_number(p[-1]) except Exception: return None return submission_id
def get_user_test_id(self): # Only valid after self.execute() # Parse submission ID out of redirect. if self.redirected_to is None: return None p = self.redirected_to.split("&") if len(p) != 2: return None try: user_test_id = decrypt_number(p[-1]) except Exception: return None return user_test_id
def get_user_test_id(self): # Only valid after self.execute() # Parse submission ID out of redirect. if self.redirected_to is None: return None p = self.redirected_to.split("&") if len(p) != 2: logger.warning("Redirected to an unexpected page: `%s'", self.redirected_to) return None try: user_test_id = decrypt_number(p[-1]) except Exception: logger.warning("Unable to decrypt user test id from page: `%s'", self.redirected_to) return None return user_test_id
def get_user_test_id(self): # Only valid after self.execute() # Parse submission ID out of redirect. if self.redirected_to is None: return None query = parse_qs(urlsplit(self.redirected_to).query) if "user_test_id" not in query or len(query["user_test_id"]) != 1: logger.warning("Redirected to an unexpected page: `%s'", self.redirected_to) return None try: user_test_id = decrypt_number(query["user_test_id"][0]) except Exception: logger.warning("Unable to decrypt user test id from page: `%s'", self.redirected_to) return None return user_test_id
def test_encrypt_and_decrypt(self): self.assertEqual( decrypt_number(encrypt_number(123, self.key), self.key), 123)
def test_encrypt_and_decrypt_big(self): self.assertEqual( decrypt_number(encrypt_number(10**42, self.key), self.key), 10**42)
def test_encrypt_and_decrypt_negative(self): self.assertEqual( decrypt_number(encrypt_number(-123, self.key), self.key), -123)
def test_encrypt_and_decrypt_big(self): self.assertEqual( decrypt_number(encrypt_number(10 ** 42, self.key), self.key), 10 ** 42)