aboutsummaryrefslogtreecommitdiff
path: root/apps/notes
diff options
context:
space:
mode:
Diffstat (limited to 'apps/notes')
-rw-r--r--apps/notes/notebook_urls.py13
-rw-r--r--apps/notes/notes_urls.py17
-rw-r--r--apps/notes/tests/test_forms.py17
-rw-r--r--apps/notes/tests/test_urls.py75
4 files changed, 122 insertions, 0 deletions
diff --git a/apps/notes/notebook_urls.py b/apps/notes/notebook_urls.py
new file mode 100644
index 0000000..b433d15
--- /dev/null
+++ b/apps/notes/notebook_urls.py
@@ -0,0 +1,13 @@
+from django.urls import path
+
+from .views import (
+ NotebookListView,
+ NotebookDetailView,
+)
+
+app_name = "notebooks"
+
+urlpatterns = [
+ path(r'<slug>', NotebookDetailView.as_view(), name='detail',),
+ path(r'', NotebookListView.as_view(), name='list',),
+]
diff --git a/apps/notes/notes_urls.py b/apps/notes/notes_urls.py
new file mode 100644
index 0000000..f2573ce
--- /dev/null
+++ b/apps/notes/notes_urls.py
@@ -0,0 +1,17 @@
+from django.urls import path
+
+from .views import (
+ NoteDetailView,
+ NoteCreateView,
+ NoteListView,
+ NoteTagView,
+)
+
+app_name = "notes"
+
+urlpatterns = [
+ path(r'create/', NoteCreateView.as_view(), name='create',),
+ path(r'<slug>/<pk>', NoteDetailView.as_view(), name='detail',),
+ path(r't/<slug>', NoteTagView.as_view(), name='tags',),
+ path(r'', NoteListView.as_view(), name='list',),
+]
diff --git a/apps/notes/tests/test_forms.py b/apps/notes/tests/test_forms.py
new file mode 100644
index 0000000..a9b2a7d
--- /dev/null
+++ b/apps/notes/tests/test_forms.py
@@ -0,0 +1,17 @@
+from django.test import TestCase
+from notes.forms import NoteForm
+
+
+class NoteFormTests(TestCase):
+ def test_forms(self):
+ form_data = {
+ 'title': 'My Note',
+ 'body_text': 'Body of the note',
+ 'body_html': '<p>Body of the note</p>',
+ 'body_qjson': '',
+ 'notebook': '',
+ 'url': '',
+ 'tags': 'three word tag, tag'
+ }
+ form = NoteForm(data=form_data)
+ self.assertTrue(form.is_valid())
diff --git a/apps/notes/tests/test_urls.py b/apps/notes/tests/test_urls.py
new file mode 100644
index 0000000..e4fee57
--- /dev/null
+++ b/apps/notes/tests/test_urls.py
@@ -0,0 +1,75 @@
+from django.urls import reverse, resolve
+from django.test import TestCase
+from django.contrib import auth
+
+from mixer.backend.django import mixer
+
+from notes.models import Note
+
+User = auth.get_user_model()
+
+
+class TestNotesURLs(TestCase):
+ """Test URL patterns for notes."""
+
+ def setUp(self):
+ self.user = mixer.blend(User, username='tpynchon')
+ self.note = Note.objects.create(
+ owner=self.user,
+ title="test note",
+ body_text="the body of the note",
+ url="https://luxagraf.net/",
+ tags="mine,cool site"
+ )
+ self.note.save()
+
+ def test_list_reverse(self):
+ """notes:list should reverse to /n/."""
+ self.assertEqual(reverse('notes:list'), '/n/')
+
+ def test_list_resolve(self):
+ """/n/ should resolve to notes:list."""
+ self.assertEqual(resolve('/n/').view_name, 'notes:list')
+
+ def test_detail_reverse(self):
+ """notes:detail should reverse to /n/slug/id"""
+ path = '/n/%s/%s' % (self.note.slug, self.note.pk)
+ self.assertEqual(
+ reverse('notes:detail', kwargs={'slug': self.note.slug, 'pk': self.note.pk}), path
+ )
+
+ def test_detail_resolve(self):
+ """/n/test-note/1 should resolve to notes:detail."""
+ self.assertEqual(resolve('/n/test-note/1').view_name, 'notes:detail')
+
+ def test_create_reverse(self):
+ """notes:create should reverse to /n/create/."""
+ self.assertEqual(reverse('notes:create'), '/n/create/')
+
+ def test_create_resolve(self):
+ """/n/create/ should resolve to notes:create"""
+ self.assertEqual(
+ resolve('/n/create/').view_name,
+ 'notes:create'
+ )
+
+
+class TestNotebooksURLs(TestCase):
+ """Test URL patterns for notebooks."""
+
+ def test_list_reverse(self):
+ """notebooks:list should reverse to /nb/."""
+ self.assertEqual(reverse('notebooks:list'), '/nb/')
+
+ def test_list_resolve(self):
+ """/n/ should resolve to notes:list."""
+ self.assertEqual(resolve('/nb/').view_name, 'notebooks:list')
+
+ def test_detail_reverse(self):
+ """notes:detail should reverse to /nb/slug"""
+ self.assertEqual(reverse('notebooks:detail', kwargs={'slug': 'test-notebook'}), '/nb/test-notebook')
+
+ def test_detail_resolve(self):
+ """/n/test-note/1 should resolve to notes:detail."""
+ self.assertEqual(resolve('/nb/test-notebook').view_name, 'notebooks:detail')
+