Ver código fonte

Add register page

Benoît Hubert 7 anos atrás
pai
commit
d3fdd10c54

+ 0 - 0
accounts/__init__.py


+ 3 - 0
accounts/admin.py

@@ -0,0 +1,3 @@
+from django.contrib import admin
+
+# Register your models here.

+ 5 - 0
accounts/apps.py

@@ -0,0 +1,5 @@
+from django.apps import AppConfig
+
+
+class AccountsConfig(AppConfig):
+    name = 'accounts'

+ 0 - 0
accounts/migrations/__init__.py


+ 3 - 0
accounts/models.py

@@ -0,0 +1,3 @@
+from django.db import models
+
+# Create your models here.

+ 13 - 0
accounts/templates/register.html

@@ -0,0 +1,13 @@
+<html>
+  <title>MovieLib</title>
+    <body>
+      <h1>Your Movie list</h1>
+
+      <h2>Register</h2>
+      <form method="POST" action="/register">
+        <input name="email" id="input-email" placeholder="Enter your email" required />
+        <input type="password" name="password" id="input-password" placeholder="Enter your password" required />
+        {% csrf_token %}
+      </form>
+  </body>
+</html>

+ 24 - 0
accounts/tests.py

@@ -0,0 +1,24 @@
+from django.urls import resolve
+from django.test import TestCase
+
+from accounts.views import register
+
+# Create your tests here.
+class RegisterPageTest(TestCase):
+
+    def test_register_url_resolves_to_register_page_view(self):
+        found = resolve('/register')
+        self.assertEqual(found.func, register)
+
+    def test_home_page_returns_correct_html(self):
+        response = self.client.get('/register')
+        html = response.content.decode('utf8')
+
+        self.assertTrue(html.startswith('<html>'))
+        self.assertIn('<title>MovieLib</title>', html)
+        self.assertTrue(html.strip().endswith('</html>'))
+
+        self.assertIn('<h2>Register</h2>', html)
+
+        self.assertTemplateUsed(response, 'register.html')
+

+ 5 - 0
accounts/views.py

@@ -0,0 +1,5 @@
+from django.shortcuts import render
+
+# Create your views here.
+def register(request):
+    return render(request, 'register.html')

+ 6 - 0
functional_tests/tests.py

@@ -29,6 +29,12 @@ class NewVisitorTest(LiveServerTestCase):
                     raise e
                 time.sleep(0.2)
 
+    def test_can_register_a_user(self):
+        self.browser.get(self.live_server_url + '/register')
+        header_text = self.browser.find_element_by_tag_name('h2').text
+        self.assertIn('Register', header_text)
+
+
     def test_can_start_a_list_for_one_user(self):
         # Edith has heard about a cool new online to-do app. She goes
         # to check out its homepage

+ 1 - 0
movielib/settings.py

@@ -38,6 +38,7 @@ INSTALLED_APPS = [
     'django.contrib.messages',
     'django.contrib.staticfiles',
     'movies',
+    'accounts',
 ]
 
 MIDDLEWARE = [

+ 5 - 3
movielib/urls.py

@@ -16,10 +16,12 @@ Including another URLconf
 from django.contrib import admin
 from django.urls import path
 from django.conf.urls import url
-from movies import views
+from movies import views as movie_views
+from accounts import views as account_views
 
 urlpatterns = [
     path('admin/', admin.site.urls),
-    url(r'^$', views.home_page, name='home'),
-    url(r'^libraries/benoit-hubert/$', views.view_list, name='view_list'),
+    url(r'^$', movie_views.home_page, name='home'),
+    url(r'^libraries/benoit-hubert/$', movie_views.view_list, name='view_list'),
+    url(r'^register/?$', account_views.register, name='register'),
 ]