mirror of
https://github.com/nottinghamtec/PyRIGS.git
synced 2026-01-17 05:22:16 +00:00
Deduplication of testing code
This commit is contained in:
@@ -28,154 +28,6 @@ from django.conf import settings
|
||||
|
||||
import sys
|
||||
|
||||
|
||||
class EventTest(LiveServerTestCase):
|
||||
def setUp(self):
|
||||
self.profile = models.Profile(
|
||||
username="EventTest", first_name="Event", last_name="Test", initials="ETU", is_superuser=True)
|
||||
self.profile.set_password("EventTestPassword")
|
||||
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
|
||||
# self.browser.maximize_window()
|
||||
|
||||
os.environ['RECAPTCHA_TESTING'] = 'True'
|
||||
|
||||
def tearDown(self):
|
||||
self.browser.quit()
|
||||
os.environ['RECAPTCHA_TESTING'] = 'False'
|
||||
|
||||
def authenticate(self, n=None):
|
||||
self.assertIn(
|
||||
self.live_server_url + '/user/login/', self.browser.current_url)
|
||||
if n:
|
||||
self.assertIn('?next=%s' % n, self.browser.current_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("EventTest")
|
||||
password.send_keys("EventTestPassword")
|
||||
submit.click()
|
||||
|
||||
self.assertEqual(self.live_server_url + n, self.browser.current_url)
|
||||
|
||||
def testEventDetail(self):
|
||||
with transaction.atomic(), reversion.create_revision():
|
||||
person = models.Person(name="Event Detail Person", email="eventdetail@person.tests.rigs", phone="123 123")
|
||||
person.save()
|
||||
with transaction.atomic(), reversion.create_revision():
|
||||
organisation = models.Organisation(name="Event Detail Organisation",
|
||||
email="eventdetail@organisation.tests.rigs", phone="123 456").save()
|
||||
with transaction.atomic(), reversion.create_revision():
|
||||
venue = models.Venue(name="Event Detail Venue").save()
|
||||
with transaction.atomic(), reversion.create_revision():
|
||||
event = models.Event(
|
||||
name="Detail Test",
|
||||
description="This is an event to test the detail view",
|
||||
notes="It is going to be aweful",
|
||||
person=person,
|
||||
organisation=organisation,
|
||||
start_date='2015-06-04'
|
||||
)
|
||||
event.save()
|
||||
with transaction.atomic(), reversion.create_revision():
|
||||
item1 = models.EventItem(
|
||||
event=event,
|
||||
name="Detail Item 1",
|
||||
cost="10.00",
|
||||
quantity="1",
|
||||
order=1
|
||||
).save()
|
||||
item2 = models.EventItem(
|
||||
event=event,
|
||||
name="Detail Item 2",
|
||||
description="Foo",
|
||||
cost="9.72",
|
||||
quantity="3",
|
||||
order=2,
|
||||
).save()
|
||||
|
||||
self.browser.get(self.live_server_url + '/event/%d' % event.pk)
|
||||
self.authenticate('/event/%d/' % event.pk)
|
||||
self.assertIn("N%05d | %s" % (event.pk, event.name), self.browser.find_element_by_xpath('//h1').text)
|
||||
|
||||
personPanel = self.browser.find_element_by_xpath('//div[contains(text(), "Contact Details")]/..')
|
||||
self.assertEqual(person.name,
|
||||
personPanel.find_element_by_xpath('//dt[text()="Person"]/following-sibling::dd[1]').text)
|
||||
self.assertEqual(person.email,
|
||||
personPanel.find_element_by_xpath('//dt[text()="Email"]/following-sibling::dd[1]').text)
|
||||
self.assertEqual(person.phone,
|
||||
personPanel.find_element_by_xpath('//dt[text()="Phone Number"]/following-sibling::dd[1]').text)
|
||||
|
||||
organisationPanel = self.browser.find_element_by_xpath('//div[contains(text(), "Contact Details")]/..')
|
||||
|
||||
def testEventEdit(self):
|
||||
person = models.Person.objects.create(name="Event Edit Person", email="eventdetail@person.tests.rigs",
|
||||
phone="123 123")
|
||||
organisation = models.Organisation.objects.create(name="Event Edit Organisation",
|
||||
email="eventdetail@organisation.tests.rigs", phone="123 456")
|
||||
venue = models.Venue.objects.create(name="Event Detail Venue")
|
||||
|
||||
eventData = {
|
||||
'name': "Detail Test",
|
||||
'description': "This is an event to test the detail view",
|
||||
'notes': "It is going to be awful",
|
||||
'person': person,
|
||||
'organisation': organisation,
|
||||
'venue': venue,
|
||||
'mic': self.profile,
|
||||
'start_date': date(2015, 0o6, 0o4),
|
||||
'end_date': date(2015, 0o6, 0o5),
|
||||
'start_time': time(10, 00),
|
||||
'end_time': time(15, 00),
|
||||
'meet_at': self.create_datetime(2015, 0o6, 0o4, 10, 00),
|
||||
'access_at': self.create_datetime(2015, 0o6, 0o4, 10, 00),
|
||||
'collector': 'A Person'
|
||||
}
|
||||
|
||||
event = models.Event(**eventData)
|
||||
event.save()
|
||||
|
||||
item1Data = {
|
||||
'event': event,
|
||||
'name': "Detail Item 1",
|
||||
'cost': "10.00",
|
||||
'quantity': "1",
|
||||
'order': 1
|
||||
}
|
||||
|
||||
models.EventItem(**item1Data).save()
|
||||
|
||||
self.browser.get(self.live_server_url + '/event/%d/edit/' % event.pk)
|
||||
self.authenticate('/event/%d/edit/' % event.pk)
|
||||
|
||||
save = self.browser.find_element_by_xpath('(//button[@type="submit"])[1]')
|
||||
save.click()
|
||||
|
||||
successTitle = self.browser.find_element_by_xpath('//h1').text
|
||||
self.assertIn("N%05d | Detail Test" % event.pk, successTitle)
|
||||
|
||||
reloadedEvent = models.Event.objects.get(name='Detail Test')
|
||||
reloadedItem = models.EventItem.objects.get(name='Detail Item 1')
|
||||
|
||||
# Check the event
|
||||
for key, value in eventData.items():
|
||||
self.assertEqual(str(getattr(reloadedEvent, key)), str(value))
|
||||
|
||||
# Check the item
|
||||
for key, value in item1Data.items():
|
||||
self.assertEqual(str(getattr(reloadedItem, key)), str(value))
|
||||
|
||||
def create_datetime(self, year, month, day, hour, min):
|
||||
tz = pytz.timezone(settings.TIME_ZONE)
|
||||
return tz.localize(datetime(year, month, day, hour, min)).astimezone(pytz.utc)
|
||||
|
||||
|
||||
class IcalTest(LiveServerTestCase):
|
||||
def setUp(self):
|
||||
self.all_events = set(range(1, 18))
|
||||
|
||||
Reference in New Issue
Block a user