Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions vol/factories.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ class Meta:
class OrganisationFactory(factory.django.DjangoModelFactory):
name = "The nappy changers"
country = "NZ"
city = "Wellington"
region = "Wellington"
city = "wellington"
region = "wellington"
url = "www.example.com/organisations/nappychangers"

class Meta:
Expand All @@ -33,8 +33,8 @@ class JobFactory(factory.django.DjangoModelFactory):
title = "Nappy changer"
text = "A create opportunity for a people person"
country = "NZ"
region = "Welington"
city = "Wellington"
region = "wellington"
city = "wellington"
url = "http://www.example.com/jobs/1"
seen = 0

Expand Down
112 changes: 110 additions & 2 deletions vol/test_views.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
from django.core.urlresolvers import reverse
from django.test import TestCase
from django.test import TransactionTestCase

from vol.factories import LabelsFactory, JobFactory

class IndexViewTests(TestCase):

class IndexViewTests(TransactionTestCase):
# Assert we are redirected to a secure url
def test_index_insecure_redirects(self):
response = self.client.get(reverse('index'), secure=False)
Expand All @@ -11,3 +13,109 @@ def test_index_insecure_redirects(self):
def test_index_view(self):
response = self.client.get(reverse('index'), secure=True)
self.assertEqual(response.status_code, 200)

def test_get_results_none(self):
response = self.client.get('/results/Nonesense/Nonesense', secure=True)

self.assertEqual(response.context[0]['job_count'], 0)
self.assertEqual(response.context[0]['matched_intersection'], 0)
self.assertEqual(response.context[0]['matched_interests_count'], 0)
self.assertEqual(response.context[0]['location_matches'], 0)
self.assertEqual(response.status_code, 200)

def test_get_results_one_complete_match(self):
label = LabelsFactory(name="nature")
job = JobFactory()
job.labels.add(label.id)

response = self.client.get('/results/Wellington/Nature', secure=True)

self.assertEqual(response.context[0]['job_count'], 1)
self.assertEqual(response.context[0]['matched_intersection'], 1)
self.assertEqual(response.context[0]['matched_interests_count'], 1)
self.assertEqual(response.context[0]['location_matches'], 1)
self.assertEqual(response.status_code, 200)

def test_get_results_one_location_only(self):
label = LabelsFactory()
job = JobFactory()
job.labels.add(label.id)

response = self.client.get('/results/Wellington/Nature', secure=True)

self.assertEqual(response.context[0]['job_count'], 1)
self.assertEqual(response.context[0]['matched_intersection'], 0)
self.assertEqual(response.context[0]['matched_interests_count'], 0)
self.assertEqual(response.context[0]['location_matches'], 1)
self.assertEqual(response.status_code, 200)

def test_get_results_one_label_only(self):
label = LabelsFactory(name="nature")
job = JobFactory(city="Dunedin")
job.labels.add(label.id)

response = self.client.get('/results/Wellington/Nature', secure=True)

self.assertEqual(response.context[0]['job_count'], 1)
self.assertEqual(response.context[0]['matched_intersection'], 0)
self.assertEqual(response.context[0]['matched_interests_count'], 1)
self.assertEqual(response.context[0]['location_matches'], 0)
self.assertEqual(response.status_code, 200)

def test_get_results_many(self):
label = LabelsFactory(name="nature")
job_one = JobFactory()
job_one.labels.add(label.id)
job_two = JobFactory(title="Butterfly catcher")
job_two.labels.add(label.id)

response = self.client.get('/results/Wellington/Nature', secure=True)

self.assertEqual(response.context[0]['job_count'], 2)
self.assertEqual(response.context[0]['matched_intersection'], 2)
self.assertEqual(response.context[0]['matched_interests_count'], 1)
self.assertEqual(response.context[0]['location_matches'], 2)
self.assertEqual(response.status_code, 200)

def test_get_results_many_complete_match(self):
label = LabelsFactory(name="nature")
job_one = JobFactory()
job_one.labels.add(label.id)
job_two = JobFactory(title="Butterfly catcher")
job_two.labels.add(label.id)

response = self.client.get('/results/Wellington/Nature', secure=True)

self.assertEqual(response.context[0]['job_count'], 2)
self.assertEqual(response.context[0]['matched_intersection'], 2)
self.assertEqual(response.context[0]['matched_interests_count'], 1)
self.assertEqual(response.context[0]['location_matches'], 2)
self.assertEqual(response.status_code, 200)

def test_get_results_many_location_only(self):
JobFactory()
JobFactory(title="Butterfly catcher")

response = self.client.get('/results/Wellington/Nature', secure=True)

self.assertEqual(response.context[0]['job_count'], 2)
self.assertEqual(response.context[0]['matched_intersection'], 0)
self.assertEqual(response.context[0]['matched_interests_count'], 0)
self.assertEqual(response.context[0]['location_matches'], 2)
self.assertEqual(response.status_code, 200)

def test_get_results_many_label_only(self):
label = LabelsFactory(name="nature")
job_one = JobFactory(city="Dunedin")
job_one.labels.add(label.id)
job_two = JobFactory(title="Butterfly catcher",
city="Amsterdam")
job_two.labels.add(label.id)

response = self.client.get('/results/Wellington/Nature', secure=True)

self.assertEqual(response.context[0]['job_count'], 2)
self.assertEqual(response.context[0]['matched_intersection'], 0)
self.assertEqual(response.context[0]['matched_interests_count'], 1)
self.assertEqual(response.context[0]['location_matches'], 0)
self.assertEqual(response.status_code, 200)
5 changes: 3 additions & 2 deletions vol/views.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
from django.http import HttpResponse
from .models import Job
from django.db.models import Q
from django.http import HttpResponse
from django.shortcuts import render

from .models import Job


def index(request):
return HttpResponse(render(request, 'vol/index.html'))
Expand Down
2 changes: 1 addition & 1 deletion volproject/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
from django.contrib import admin

urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^admin', admin.site.urls),
url(r'^api', include('api.urls')),
url(r'^', include('vol.urls')),
]