From 406b4590a9470aa0a965b46bbe06730d3a278f9b Mon Sep 17 00:00:00 2001 From: Philip Sargent Date: Sun, 5 Dec 2021 21:45:06 +0000 Subject: [PATCH] fix tests to match new error messages --- core/TESTS/tests.py | 4 ++-- core/views/caves.py | 32 +++++++++++++++++++++----- core/views/survex.py | 4 ++-- templates/errors/svxcavesingle404.html | 2 +- 4 files changed, 31 insertions(+), 11 deletions(-) diff --git a/core/TESTS/tests.py b/core/TESTS/tests.py index 46513f6..3bcebc4 100644 --- a/core/TESTS/tests.py +++ b/core/TESTS/tests.py @@ -162,7 +162,7 @@ class PageTests(TestCase): response = self.client.get('/cave/115') self.assertEqual(response.status_code, 200) content = response.content.decode() - ph = r"Cave not found in database" + ph = r"Cave Identifier not found in database" phmatch = re.search(ph, content) self.assertIsNotNone(phmatch, "Failed to find expected text: '" + ph +"'") @@ -435,7 +435,7 @@ class PageTests(TestCase): response = self.client.get('/survexfile/not_a_real_cave_number') self.assertEqual(response.status_code, 200) content = response.content.decode() - ph = r'Cave not found in database' + ph = r'Cave Identifier not found in database' phmatch = re.search(ph, content) self.assertIsNotNone(phmatch, "Failed to find expected text: '" + ph +"'") diff --git a/core/views/caves.py b/core/views/caves.py index 2ec7935..bc65219 100644 --- a/core/views/caves.py +++ b/core/views/caves.py @@ -294,14 +294,22 @@ def caveEntrance(request, slug): return render(request,'cave_entrances.html', {'cave': cave}) def caveDescription(request, slug): - cave = Cave.objects.get(caveslug__slug = slug) + try: + cave = Cave.objects.get(caveslug__slug = slug) + except: + return render(request,'errors/badslug.html', {'badslug': slug}) + if cave.non_public and settings.PUBLIC_SITE and not request.user.is_authenticated: return render(request,'nonpublic.html', {'instance': cave}) else: return render(request,'cave_uground_description.html', {'cave': cave}) def caveQMs(request, slug): - cave = Cave.objects.get(caveslug__slug = slug) + try: + cave = Cave.objects.get(caveslug__slug = slug) + except: + return render(request,'errors/badslug.html', {'badslug': slug}) + if cave.non_public and settings.PUBLIC_SITE and not request.user.is_authenticated: return render(request,'nonpublic.html', {'instance': cave}) else: @@ -316,7 +324,10 @@ def edit_cave(request, slug=None): ''' message = "" if slug is not None: - cave = Cave.objects.get(caveslug__slug = slug) + try: + cave = Cave.objects.get(caveslug__slug = slug) + except: + return render(request,'errors/badslug.html', {'badslug': slug}) else: cave = Cave() if request.POST: @@ -375,7 +386,10 @@ def edit_entrance(request, caveslug=None, slug=None): ''' message = "" if caveslug is not None: - cave = Cave.objects.get(caveslug__slug = caveslug) + try: + cave = Cave.objects.get(caveslug__slug = caveslug) + except: + return render(request,'errors/badslug.html', {'badslug': caveslug}) else: cave = Cave() if slug is not None: @@ -460,9 +474,15 @@ def surveyindex(request): return render(request,'survey.html',locals()) def get_entrances(request, caveslug): - cave = Cave.objects.get(caveslug__slug = caveslug) + try: + cave = Cave.objects.get(caveslug__slug = caveslug) + except: + return render(request,'errors/badslug.html', {'badslug': caveslug}) return render(request,'options.html', {"items": [(e.entrance.slug(), e.entrance.slug()) for e in cave.entrances()]}) def get_qms(request, caveslug): - cave = Cave.objects.get(caveslug__slug = caveslug) + try: + cave = Cave.objects.get(caveslug__slug = caveslug) + except: + return render(request,'errors/badslug.html', {'badslug': caveslug}) return render(request,'options.html', {"items": [(e.entrance.slug(), e.entrance.slug()) for e in cave.entrances()]}) diff --git a/core/views/survex.py b/core/views/survex.py index 9b6fc18..a3ff5bd 100644 --- a/core/views/survex.py +++ b/core/views/survex.py @@ -418,14 +418,14 @@ def survexcavesingle(request, survex_cave): return render(request, 'svxcavesingle.html', {'settings': settings, "cave":cave }) except ObjectDoesNotExist: continue # next attempt in for loop - return render(request, 'svxcavesingle404.html', {'settings': settings, "cave":sc }) + return render(request, 'errors/svxcavesingle404.html', {'settings': settings, "cave":sc }) except MultipleObjectsReturned: caves = Cave.objects.filter(kataster_number=survex_cave) return render(request, 'svxcaveseveral.html', {'settings': settings, "caves":caves }) except: - return render(request, 'svxcavesingle404.html', {'settings': settings, "cave":sc }) + return render(request, 'errors/svxcavesingle404.html', {'settings': settings, "cave":sc }) def check_cave_registered(area, survex_cave): diff --git a/templates/errors/svxcavesingle404.html b/templates/errors/svxcavesingle404.html index 81e82fa..dc5404f 100644 --- a/templates/errors/svxcavesingle404.html +++ b/templates/errors/svxcavesingle404.html @@ -1,4 +1,4 @@ - + {% extends "base.html" %} {% block title %}Troggle Error - Bad Cave ID{% endblock %}