diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..886649d --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,13 @@ +name: tests +on: [pull_request, push] +env: + DATABASE_URL: sqlite:///cardie/db.sqlite3 +jobs: + test_project: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-python@v2 + - run: pip install -r requirements.txt + - run: pip install -r requirements-dev.txt + - run: python cardie/manage.py test cardie diff --git a/cardie/cardie/settings.py b/cardie/cardie/settings.py index b7e1db0..ecb614c 100644 --- a/cardie/cardie/settings.py +++ b/cardie/cardie/settings.py @@ -22,6 +22,7 @@ "django-insecure-a_r$cp+uufzh*bdagc!fra@7n10c*ciuleve_4+-cs_bftbb9", ), DJANGO_ALLOWED_HOSTS=(list, ["localhost", "127.0.0.1"]), + ADMIN_PATH=(str, "admin/"), DATABASE_URL=(str, "sqlite:///db.sqlite3") ) # Build paths inside the project like this: BASE_DIR / 'subdir'. @@ -40,7 +41,11 @@ ALLOWED_HOSTS = env("DJANGO_ALLOWED_HOSTS") +ADMIN_PATH = env("ADMIN_PATH") +FIXTURE_DIRS = [ + os.path.join(BASE_DIR, "fixtures"), +] # Application definition INSTALLED_APPS = [ diff --git a/cardie/cardie/tests.py b/cardie/cardie/tests.py new file mode 100644 index 0000000..c201fc5 --- /dev/null +++ b/cardie/cardie/tests.py @@ -0,0 +1,21 @@ +from unittest import skip + +from django.test import Client, TestCase, override_settings + + +@override_settings(ADMIN_PATH="foo/") +class AdminTestCase(TestCase): + fixtures = ["server"] + + def setUp(self): + self.client = Client() + + def test_default_path_should_be_admin(self): + response = self.client.get("/admin/", follow=True) + self.assertEqual(response.status_code, 200) + + @skip("This test is failing. Is hard to test this because urls are populated.") + @override_settings(ADMIN_PATH="foo/") + def test_custom_path_should_be_foo(self): + response = self.client.get("/foo/", follow=True) + self.assertEqual(response.status_code, 200) diff --git a/cardie/cardie/urls.py b/cardie/cardie/urls.py index 07d8099..1b3e64e 100644 --- a/cardie/cardie/urls.py +++ b/cardie/cardie/urls.py @@ -14,11 +14,15 @@ 1. Import the include() function: from django.urls import include, path 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) """ + +from django.conf import settings from django.contrib import admin -from django.urls import path, include +from django.urls import include, path + +ADMIN_PATH = settings.ADMIN_PATH urlpatterns = [ path("", include("main.urls")), path("auth/", include("authentication.urls")), - path('admin/', admin.site.urls), + path(ADMIN_PATH, admin.site.urls), ] diff --git a/cardie/fixtures/server.json b/cardie/fixtures/server.json new file mode 100644 index 0000000..4e3e1d6 --- /dev/null +++ b/cardie/fixtures/server.json @@ -0,0 +1,12 @@ +[ + { + "model": "main.server", + "pk": 1, + "fields": { + "ip": "127.0.0.1", + "production": true, + "allow_create_accounts": true, + "allow_sign_in": true + } + } +] diff --git a/cardie/main/context_processors.py b/cardie/main/context_processors.py index 48994eb..d1d3d87 100644 --- a/cardie/main/context_processors.py +++ b/cardie/main/context_processors.py @@ -1,17 +1,27 @@ from django.core.exceptions import ImproperlyConfigured +from django.conf import settings from .models import Server def server_context(request): server_context = Server.objects.first() - if server_context is None: - raise ImproperlyConfigured( - "No Server object found in the database. Tip: please add one." - ) + if settings.ADMIN_PATH not in request.path: + if server_context is None: + raise ImproperlyConfigured( + "No Server object found in the database. Tip: please add one." + ) - return { - "server": { - "ip": server_context.ip, - "production": server_context.production, + return { + "server": { + "ip": server_context.ip, + "production": server_context.production + } + } + + else: + return { + "server": { + "ip": "", + "production": "" + } } - } diff --git a/cardie/main/templates/editor.html b/cardie/main/templates/editor.html index fba7d25..152d38e 100644 --- a/cardie/main/templates/editor.html +++ b/cardie/main/templates/editor.html @@ -36,6 +36,7 @@
@@ -97,7 +98,7 @@

Accent color

-

Create a Card

+

+ Create a Card +