Browse Source

Add support for tests that use django.test.Client and that require a database, and use this support to test some of the wellknowns.views modules

tags/v1.9.2
Danielle McLean 2 years ago
parent
commit
cbc24d4774
Signed by: 00dani <dani@00dani.me> GPG Key ID: 5A5D2D1AFF12EEC5
6 changed files with 44 additions and 1 deletions
  1. +4
    -0
      lemoncurry/settings/test.py
  2. +1
    -1
      pytest.ini
  3. +0
    -0
      wellknowns/tests/__init__.py
  4. +0
    -0
      wellknowns/tests/views/__init__.py
  5. +26
    -0
      wellknowns/tests/views/host_meta.py
  6. +13
    -0
      wellknowns/tests/views/static.py

+ 4
- 0
lemoncurry/settings/test.py View File

@@ -0,0 +1,4 @@
from .base import *

ALLOWED_HOSTS = ['*']
SECURE_SSL_REDIRECT = False

+ 1
- 1
pytest.ini View File

@@ -1,3 +1,3 @@
[pytest]
DJANGO_SETTINGS_MODULE = lemoncurry.settings.dev
DJANGO_SETTINGS_MODULE = lemoncurry.settings.test
python_files = tests/*.py

+ 0
- 0
wellknowns/tests/__init__.py View File


+ 0
- 0
wellknowns/tests/views/__init__.py View File


+ 26
- 0
wellknowns/tests/views/host_meta.py View File

@@ -0,0 +1,26 @@
import json
from lxml import etree
import pytest


@pytest.mark.django_db
def test_host_meta_json(client):
res = client.get('/.well-known/host-meta.json')
assert res.status_code == 200
assert res['Content-Type'] == 'application/json'
meta = json.loads(res.content)
assert meta.keys() == {'links', 'subject'}
assert meta['subject'] == 'https://example.com'
assert len(meta['links']) == 13


@pytest.mark.django_db
def test_host_meta_xml(client):
res = client.get('/.well-known/host-meta')
assert res.status_code == 200
assert res['Content-Type'] == 'application/xrd+xml'
root = etree.XML(res.content)
ns = '{http://docs.oasis-open.org/ns/xri/xrd-1.0}'
assert root.tag == (ns + 'XRD')
assert root.findtext(ns + 'Subject') == 'https://example.com'
assert len(root.findall(ns + 'Link')) == 13

+ 13
- 0
wellknowns/tests/views/static.py View File

@@ -0,0 +1,13 @@
from ...views import static


def test_redirect_to_static(rf):
res = static.redirect_to_static('abcd')(rf.get('/'))
assert res.status_code == 302
assert res.url == '/static/wellknowns/abcd'


def test_keybase(rf):
res = static.keybase(rf.get('/.well-knowns/keybase.txt'))
assert res.status_code == 302
assert res.url == '/static/wellknowns/keybase.txt'

Loading…
Cancel
Save