mirror of
https://github.com/nottinghamtec/PyRIGS.git
synced 2026-01-17 13:32:15 +00:00
FEAT: Basic testing of search
This commit is contained in:
@@ -1201,3 +1201,47 @@ class TECEventAuthorisationTest(TestCase):
|
||||
self.assertEqual(self.event.auth_request_by, self.profile)
|
||||
self.assertEqual(self.event.auth_request_to, 'client@functional.test')
|
||||
self.assertIsNotNone(self.event.auth_request_at)
|
||||
|
||||
|
||||
class SearchTest(LiveServerTestCase):
|
||||
def setUp(self):
|
||||
self.profile = models.Profile(
|
||||
username="SearchTest", first_name="Search", last_name="Test", initials="STU", is_superuser=True)
|
||||
self.profile.set_password("SearchTestPassword")
|
||||
self.profile.save()
|
||||
|
||||
self.vatrate = models.VatRate.objects.create(start_at='2014-03-05', rate=0.20, comment='test1')
|
||||
|
||||
self.browser = create_browser()
|
||||
self.browser.implicitly_wait(10) # Set implicit wait session wide
|
||||
|
||||
os.environ['RECAPTCHA_TESTING'] = 'True'
|
||||
|
||||
models.Event.objects.create(name="Right Event", status=models.Event.PROVISIONAL,
|
||||
start_date=date.today(), description="This event is searched for endlessly over and over")
|
||||
models.Event.objects.create(name="Wrong Event", status=models.Event.PROVISIONAL, start_date=date.today(),
|
||||
description="This one should never be found.")
|
||||
|
||||
def tearDown(self):
|
||||
self.browser.quit()
|
||||
os.environ['RECAPTCHA_TESTING'] = 'False'
|
||||
|
||||
def test_search(self):
|
||||
self.browser.get(self.live_server_url)
|
||||
username = self.browser.find_element_by_id('id_username')
|
||||
password = self.browser.find_element_by_id('id_password')
|
||||
submit = self.browser.find_element_by_css_selector(
|
||||
'input[type=submit]')
|
||||
|
||||
username.send_keys("SearchTest")
|
||||
password.send_keys("SearchTestPassword")
|
||||
submit.click()
|
||||
|
||||
form = self.browser.find_element_by_id('searchForm')
|
||||
search_box = form.find_element_by_id('id_search_input')
|
||||
search_box.send_keys('Right')
|
||||
search_box.send_keys(Keys.ENTER)
|
||||
|
||||
event_name = self.browser.find_element_by_xpath('//*[@id="content"]/div[1]/div[4]/div/div/table/tbody/tr[1]/td[3]/h4').text
|
||||
self.assertIn('Right', event_name)
|
||||
self.assertNotIn('Wrong', event_name)
|
||||
|
||||
@@ -423,3 +423,107 @@ class TestSampleDataGenerator(TestCase):
|
||||
from django.core.management.base import CommandError
|
||||
|
||||
self.assertRaisesRegex(CommandError, ".*production", call_command, 'generateSampleRIGSData')
|
||||
|
||||
|
||||
class TestSearchLogic(TestCase):
|
||||
@classmethod
|
||||
def setUpTestData(cls):
|
||||
cls.profile = models.Profile.objects.create(username="testuser1", email="1@test.com", is_superuser=True,
|
||||
is_active=True, is_staff=True)
|
||||
|
||||
cls.persons = {
|
||||
1: models.Person.objects.create(name="Right Person", phone="1234"),
|
||||
2: models.Person.objects.create(name="Wrong Person", phone="5678"),
|
||||
}
|
||||
|
||||
cls.organisations = {
|
||||
1: models.Organisation.objects.create(name="Right Organisation", email="test@example.com"),
|
||||
2: models.Organisation.objects.create(name="Wrong Organisation", email="check@fake.co.uk"),
|
||||
}
|
||||
|
||||
cls.venues = {
|
||||
1: models.Venue.objects.create(name="Right Venue", address="1 Test Street, EX1"),
|
||||
2: models.Venue.objects.create(name="Wrong Venue", address="2 Check Way, TS2"),
|
||||
}
|
||||
|
||||
cls.events = {
|
||||
1: models.Event.objects.create(name="Right Event", start_date=date.today(), person=cls.persons[1],
|
||||
organisation=cls.organisations[1], venue=cls.venues[1]),
|
||||
2: models.Event.objects.create(name="Wrong Event", start_date=date.today(), person=cls.persons[2],
|
||||
organisation=cls.organisations[2], venue=cls.venues[2]),
|
||||
}
|
||||
|
||||
def setUp(self):
|
||||
self.profile.set_password('testuser')
|
||||
self.profile.save()
|
||||
self.assertTrue(self.client.login(username=self.profile.username, password='testuser'))
|
||||
|
||||
def test_event_search(self):
|
||||
# Test search by name
|
||||
request_url = "%s?q=%s" % (reverse('event_archive'), self.events[1].name)
|
||||
response = self.client.get(request_url, follow=True)
|
||||
self.assertContains(response, self.events[1].name)
|
||||
self.assertNotContains(response, self.events[2].name)
|
||||
|
||||
# Test search by ID
|
||||
request_url = "%s?q=%s" % (reverse('event_archive'), self.events[1].pk)
|
||||
response = self.client.get(request_url, follow=True)
|
||||
self.assertContains(response, self.events[1].name)
|
||||
self.assertNotContains(response, self.events[2].name)
|
||||
|
||||
def test_people_search(self):
|
||||
# Test search by name
|
||||
request_url = "%s?q=%s" % (reverse('person_list'), self.persons[1].name)
|
||||
response = self.client.get(request_url, follow=True)
|
||||
self.assertContains(response, self.persons[1].name)
|
||||
self.assertNotContains(response, self.persons[2].name)
|
||||
|
||||
# Test search by ID
|
||||
request_url = "%s?q=%s" % (reverse('person_list'), self.persons[1].pk)
|
||||
response = self.client.get(request_url, follow=True)
|
||||
self.assertContains(response, self.persons[1].name)
|
||||
self.assertNotContains(response, self.persons[2].name)
|
||||
|
||||
# Test search by phone
|
||||
request_url = "%s?q=%s" % (reverse('person_list'), self.persons[1].phone)
|
||||
response = self.client.get(request_url, follow=True)
|
||||
self.assertContains(response, self.persons[1].name)
|
||||
self.assertNotContains(response, self.persons[2].name)
|
||||
|
||||
def test_organisation_search(self):
|
||||
# Test search by name
|
||||
request_url = "%s?q=%s" % (reverse('organisation_list'), self.organisations[1].name)
|
||||
response = self.client.get(request_url, follow=True)
|
||||
self.assertContains(response, self.organisations[1].name)
|
||||
self.assertNotContains(response, self.organisations[2].name)
|
||||
|
||||
# Test search by ID
|
||||
request_url = "%s?q=%s" % (reverse('organisation_list'), self.organisations[1].pk)
|
||||
response = self.client.get(request_url, follow=True)
|
||||
self.assertContains(response, self.organisations[1].name)
|
||||
self.assertNotContains(response, self.organisations[2].name)
|
||||
|
||||
# Test search by email
|
||||
request_url = "%s?q=%s" % (reverse('organisation_list'), self.organisations[1].email)
|
||||
response = self.client.get(request_url, follow=True)
|
||||
self.assertContains(response, self.organisations[1].email)
|
||||
self.assertNotContains(response, self.organisations[2].email)
|
||||
|
||||
def test_venue_search(self):
|
||||
# Test search by name
|
||||
request_url = "%s?q=%s" % (reverse('venue_list'), self.venues[1].name)
|
||||
response = self.client.get(request_url, follow=True)
|
||||
self.assertContains(response, self.venues[1].name)
|
||||
self.assertNotContains(response, self.venues[2].name)
|
||||
|
||||
# Test search by ID
|
||||
request_url = "%s?q=%s" % (reverse('venue_list'), self.venues[1].pk)
|
||||
response = self.client.get(request_url, follow=True)
|
||||
self.assertContains(response, self.venues[1].name)
|
||||
self.assertNotContains(response, self.venues[2].name)
|
||||
|
||||
# Test search by address
|
||||
request_url = "%s?q=%s" % (reverse('venue_list'), self.venues[1].address)
|
||||
response = self.client.get(request_url, follow=True)
|
||||
self.assertContains(response, self.venues[1].address)
|
||||
self.assertNotContains(response, self.venues[2].address)
|
||||
|
||||
Reference in New Issue
Block a user