test_functional.py 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. # -*- coding: utf-8 -*-
  2. """Functional tests using WebTest.
  3. See: http://webtest.readthedocs.org/
  4. """
  5. from flask import url_for
  6. from walle.model.user import UserModel
  7. from .factories import UserFactory
  8. class TestLoggingIn:
  9. """Login."""
  10. def test_can_log_in_returns_200(self, user, testapp, client):
  11. """Login successful."""
  12. # Goes to homepage
  13. res = client.get('/')
  14. # # Fills out login form in navbar
  15. # form = res.forms['loginForm']
  16. # form['username'] = user.username
  17. # form['password'] = 'myprecious'
  18. # # Submits
  19. # res = form.submit().follow()
  20. assert res.status_code == 200
  21. # def test_sees_alert_on_log_out(self, user, testapp):
  22. # """Show alert on logout."""
  23. # res = testapp.get('/')
  24. # # Fills out login form in navbar
  25. # form = res.forms['loginForm']
  26. # form['username'] = user.username
  27. # form['password'] = 'myprecious'
  28. # # Submits
  29. # res = form.submit().follow()
  30. # res = testapp.get(url_for('public.logout')).follow()
  31. # # sees alert
  32. # assert 'You are logged out.' in res
  33. #
  34. # def test_sees_error_message_if_password_is_incorrect(self, user, testapp):
  35. # """Show error if password is incorrect."""
  36. # # Goes to homepage
  37. # res = testapp.get('/')
  38. # # Fills out login form, password incorrect
  39. # form = res.forms['loginForm']
  40. # form['username'] = user.username
  41. # form['password'] = 'wrong'
  42. # # Submits
  43. # res = form.submit()
  44. # # sees error
  45. # assert 'Invalid password' in res
  46. #
  47. # def test_sees_error_message_if_username_doesnt_exist(self, user, testapp):
  48. # """Show error if username doesn't exist."""
  49. # # Goes to homepage
  50. # res = testapp.get('/')
  51. # # Fills out login form, password incorrect
  52. # form = res.forms['loginForm']
  53. # form['username'] = 'unknown'
  54. # form['password'] = 'myprecious'
  55. # # Submits
  56. # res = form.submit()
  57. # # sees error
  58. # assert 'Unknown user' in res
  59. #
  60. #
  61. # class TestRegistering:
  62. # """Register a user."""
  63. #
  64. # def test_can_register(self, user, testapp):
  65. # """Register a new user."""
  66. # old_count = len(User.query.all())
  67. # # Goes to homepage
  68. # res = testapp.get('/')
  69. # # Clicks Create Account button
  70. # res = res.click('Create account')
  71. # # Fills out the form
  72. # form = res.forms['registerForm']
  73. # form['username'] = 'foobar'
  74. # form['email'] = 'foo@bar.com'
  75. # form['password'] = 'secret'
  76. # form['confirm'] = 'secret'
  77. # # Submits
  78. # res = form.submit().follow()
  79. # assert res.status_code == 200
  80. # # A new user was created
  81. # assert len(User.query.all()) == old_count + 1
  82. #
  83. # def test_sees_error_message_if_passwords_dont_match(self, user, testapp):
  84. # """Show error if passwords don't match."""
  85. # # Goes to registration page
  86. # res = testapp.get(url_for('public.register'))
  87. # # Fills out form, but passwords don't match
  88. # form = res.forms['registerForm']
  89. # form['username'] = 'foobar'
  90. # form['email'] = 'foo@bar.com'
  91. # form['password'] = 'secret'
  92. # form['confirm'] = 'secrets'
  93. # # Submits
  94. # res = form.submit()
  95. # # sees error message
  96. # assert 'Passwords must match' in res
  97. #
  98. # def test_sees_error_message_if_user_already_registered(self, user, testapp):
  99. # """Show error if user already registered."""
  100. # user = UserFactory(active=True) # A registered user
  101. # user.save()
  102. # # Goes to registration page
  103. # res = testapp.get(url_for('public.register'))
  104. # # Fills out form, but username is already registered
  105. # form = res.forms['registerForm']
  106. # form['username'] = user.username
  107. # form['email'] = 'foo@bar.com'
  108. # form['password'] = 'secret'
  109. # form['confirm'] = 'secret'
  110. # # Submits
  111. # res = form.submit()
  112. # # sees error
  113. # assert 'Username already registered' in res