test_chatgpt_signup.py 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. import unittest
  2. import chatgpt_signup
  3. class PasskeyEnrollmentTests(unittest.TestCase):
  4. def test_detects_passkey_enrollment_url(self):
  5. self.assertTrue(
  6. chatgpt_signup._is_passkey_enrollment_url(
  7. "https://auth.openai.com/create-account-enroll-passkey"
  8. )
  9. )
  10. def test_does_not_treat_about_you_as_passkey_enrollment(self):
  11. self.assertFalse(
  12. chatgpt_signup._is_passkey_enrollment_url(
  13. "https://auth.openai.com/about-you"
  14. )
  15. )
  16. def test_passkey_handler_clicks_skip_button(self):
  17. class _FakeLocator:
  18. def __init__(self, page, selector):
  19. self.page = page
  20. self.selector = selector
  21. def count(self):
  22. return 1 if "Skip for now" in self.selector else 0
  23. def nth(self, _idx):
  24. return self
  25. def is_visible(self):
  26. return True
  27. def is_enabled(self):
  28. return True
  29. def click(self, **_kwargs):
  30. self.page.clicked.append(self.selector)
  31. self.page.url = "https://chatgpt.com/"
  32. class _FakePage:
  33. def __init__(self):
  34. self.url = "https://auth.openai.com/create-account-enroll-passkey"
  35. self.clicked = []
  36. def locator(self, selector):
  37. return _FakeLocator(self, selector)
  38. page = _FakePage()
  39. handled = chatgpt_signup._handle_passkey_enrollment_if_present(
  40. page,
  41. log=lambda *_: None,
  42. timeout_sec=1,
  43. )
  44. self.assertTrue(handled)
  45. self.assertTrue(page.clicked)
  46. self.assertEqual(page.url, "https://chatgpt.com/")
  47. if __name__ == "__main__":
  48. unittest.main()