mirror of
https://github.com/nottinghamtec/PyRIGS.git
synced 2026-01-23 16:32:15 +00:00
Set wercker up to use postgres for tests again.
Modify the tests to be postgres compatible by using more pointers to things rather than getting them everytime.
This commit is contained in:
@@ -430,7 +430,7 @@ class EventTest(LiveServerTestCase):
|
|||||||
# See redirected to success page
|
# See redirected to success page
|
||||||
successTitle = self.browser.find_element_by_xpath('//h1').text
|
successTitle = self.browser.find_element_by_xpath('//h1').text
|
||||||
event = models.Event.objects.get(name='Test Event Name')
|
event = models.Event.objects.get(name='Test Event Name')
|
||||||
self.assertIn("N0000%d | Test Event Name"%event.pk, successTitle)
|
self.assertIn("N%05d | Test Event Name"%event.pk, successTitle)
|
||||||
except WebDriverException:
|
except WebDriverException:
|
||||||
# This is a dirty workaround for wercker being a bit funny and not running it correctly.
|
# This is a dirty workaround for wercker being a bit funny and not running it correctly.
|
||||||
# Waiting for wercker to get back to me about this
|
# Waiting for wercker to get back to me about this
|
||||||
@@ -487,7 +487,7 @@ class EventTest(LiveServerTestCase):
|
|||||||
# Attempt to save
|
# Attempt to save
|
||||||
save.click()
|
save.click()
|
||||||
|
|
||||||
self.assertNotIn("N0000%d"%testEvent.pk, self.browser.find_element_by_xpath('//h1').text)
|
self.assertNotIn("N%05d"%testEvent.pk, self.browser.find_element_by_xpath('//h1').text)
|
||||||
|
|
||||||
# Check the new items are visible
|
# Check the new items are visible
|
||||||
table = self.browser.find_element_by_id('item-table') # ID number is known, see above
|
table = self.browser.find_element_by_id('item-table') # ID number is known, see above
|
||||||
@@ -496,7 +496,7 @@ class EventTest(LiveServerTestCase):
|
|||||||
self.assertIn("Test Item 3", table.text)
|
self.assertIn("Test Item 3", table.text)
|
||||||
|
|
||||||
infoPanel = self.browser.find_element_by_xpath('//div[contains(text(), "Event Info")]/..')
|
infoPanel = self.browser.find_element_by_xpath('//div[contains(text(), "Event Info")]/..')
|
||||||
self.assertIn("N0000%d"%testEvent.pk, infoPanel.find_element_by_xpath('//dt[text()="Based On"]/following-sibling::dd[1]').text)
|
self.assertIn("N%05d"%testEvent.pk, infoPanel.find_element_by_xpath('//dt[text()="Based On"]/following-sibling::dd[1]').text)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -504,7 +504,7 @@ class EventTest(LiveServerTestCase):
|
|||||||
|
|
||||||
#Check that based-on hasn't crept into the old event
|
#Check that based-on hasn't crept into the old event
|
||||||
infoPanel = self.browser.find_element_by_xpath('//div[contains(text(), "Event Info")]/..')
|
infoPanel = self.browser.find_element_by_xpath('//div[contains(text(), "Event Info")]/..')
|
||||||
self.assertNotIn("N0000%d"%testEvent.pk, infoPanel.find_element_by_xpath('//dt[text()="Based On"]/following-sibling::dd[1]').text)
|
self.assertNotIn("N%05d"%testEvent.pk, infoPanel.find_element_by_xpath('//dt[text()="Based On"]/following-sibling::dd[1]').text)
|
||||||
|
|
||||||
# Check the items are as they were
|
# Check the items are as they were
|
||||||
table = self.browser.find_element_by_id('item-table') # ID number is known, see above
|
table = self.browser.find_element_by_id('item-table') # ID number is known, see above
|
||||||
@@ -623,7 +623,7 @@ class EventTest(LiveServerTestCase):
|
|||||||
# See redirected to success page
|
# See redirected to success page
|
||||||
successTitle = self.browser.find_element_by_xpath('//h1').text
|
successTitle = self.browser.find_element_by_xpath('//h1').text
|
||||||
event = models.Event.objects.get(name='Test Event Name')
|
event = models.Event.objects.get(name='Test Event Name')
|
||||||
self.assertIn("N0000%d | Test Event Name"%event.pk, successTitle)
|
self.assertIn("N%05d | Test Event Name"%event.pk, successTitle)
|
||||||
|
|
||||||
def testRigNonRig(self):
|
def testRigNonRig(self):
|
||||||
self.browser.get(self.live_server_url + '/event/create/')
|
self.browser.get(self.live_server_url + '/event/create/')
|
||||||
|
|||||||
@@ -15,71 +15,82 @@ class ProfileTestCase(TestCase):
|
|||||||
|
|
||||||
|
|
||||||
class VatRateTestCase(TestCase):
|
class VatRateTestCase(TestCase):
|
||||||
def setUp(self):
|
@classmethod
|
||||||
models.VatRate.objects.create(start_at='2014-03-01', rate=0.20, comment='test1')
|
def setUpTestData(cls):
|
||||||
models.VatRate.objects.create(start_at='2016-03-01', rate=0.15, comment='test2')
|
cls.rates = {
|
||||||
|
0: models.VatRate.objects.create(start_at='2014-03-01', rate=0.20, comment='test1'),
|
||||||
|
1: models.VatRate.objects.create(start_at='2016-03-01', rate=0.15, comment='test2'),
|
||||||
|
}
|
||||||
|
|
||||||
def test_find_correct(self):
|
def test_find_correct(self):
|
||||||
r = models.VatRate.objects.find_rate('2015-03-01')
|
r = models.VatRate.objects.find_rate('2015-03-01')
|
||||||
self.assertEqual(r.comment, 'test1')
|
self.assertEqual(r, self.rates[0])
|
||||||
r = models.VatRate.objects.find_rate('2016-03-01')
|
r = models.VatRate.objects.find_rate('2016-03-01')
|
||||||
self.assertEqual(r.comment, 'test2')
|
self.assertEqual(r, self.rates[1])
|
||||||
|
|
||||||
def test_percent_correct(self):
|
def test_percent_correct(self):
|
||||||
r = models.VatRate.objects.get(rate=0.20)
|
self.assertEqual(self.rates[0].as_percent, 20)
|
||||||
self.assertEqual(r.as_percent, 20)
|
|
||||||
|
|
||||||
|
|
||||||
class EventTestCase(TestCase):
|
class EventTestCase(TestCase):
|
||||||
def setUp(self):
|
@classmethod
|
||||||
self.all_events = set(range(1, 18))
|
def setUpTestData(cls):
|
||||||
self.current_events = (1, 2, 3, 6, 7, 8, 10, 11, 12, 14, 15, 16, 18)
|
cls.all_events = set(range(1, 18))
|
||||||
self.not_current_events = set(self.all_events) - set(self.current_events)
|
cls.current_events = (1, 2, 3, 6, 7, 8, 10, 11, 12, 14, 15, 16, 18)
|
||||||
|
cls.not_current_events = set(cls.all_events) - set(cls.current_events)
|
||||||
|
|
||||||
self.vatrate = models.VatRate.objects.create(start_at='2014-03-05', rate=0.20, comment='test1')
|
cls.vatrate = models.VatRate.objects.create(start_at='2014-03-05', rate=0.20, comment='test1')
|
||||||
self.profile = models.Profile.objects.create(username="testuser1", email="1@test.com")
|
cls.profile = models.Profile.objects.create(username="testuser1", email="1@test.com")
|
||||||
|
|
||||||
# produce 7 normal events - 5 current
|
cls.events = {
|
||||||
models.Event.objects.create(name="TE E1", start_date=date.today() + timedelta(days=6),
|
# produce 7 normal events - 5 current
|
||||||
description="start future no end")
|
1: models.Event.objects.create(name="TE E1", start_date=date.today() + timedelta(days=6),
|
||||||
models.Event.objects.create(name="TE E2", start_date=date.today(), description="start today no end")
|
description="start future no end"),
|
||||||
models.Event.objects.create(name="TE E3", start_date=date.today(), end_date=date.today(),
|
2: models.Event.objects.create(name="TE E2", start_date=date.today(), description="start today no end"),
|
||||||
description="start today with end today")
|
3: models.Event.objects.create(name="TE E3", start_date=date.today(), end_date=date.today(),
|
||||||
models.Event.objects.create(name="TE E4", start_date='2014-03-20', description="start past no end")
|
description="start today with end today"),
|
||||||
models.Event.objects.create(name="TE E5", start_date='2014-03-20', end_date='2014-03-21',
|
4: models.Event.objects.create(name="TE E4", start_date='2014-03-20', description="start past no end"),
|
||||||
description="start past with end past")
|
5: models.Event.objects.create(name="TE E5", start_date='2014-03-20', end_date='2014-03-21',
|
||||||
models.Event.objects.create(name="TE E6", start_date=date.today() - timedelta(days=2),
|
description="start past with end past"),
|
||||||
end_date=date.today() + timedelta(days=2), description="start past, end future")
|
6: models.Event.objects.create(name="TE E6", start_date=date.today() - timedelta(days=2),
|
||||||
models.Event.objects.create(name="TE E7", start_date=date.today() + timedelta(days=2),
|
end_date=date.today() + timedelta(days=2),
|
||||||
end_date=date.today() + timedelta(days=2), description="start + end in future")
|
description="start past, end future"),
|
||||||
|
7: models.Event.objects.create(name="TE E7", start_date=date.today() + timedelta(days=2),
|
||||||
|
end_date=date.today() + timedelta(days=2),
|
||||||
|
description="start + end in future"),
|
||||||
|
|
||||||
# 2 cancelled - 1 current
|
# 2 cancelled - 1 current
|
||||||
models.Event.objects.create(name="TE E8", start_date=date.today() + timedelta(days=2),
|
8: models.Event.objects.create(name="TE E8", start_date=date.today() + timedelta(days=2),
|
||||||
end_date=date.today() + timedelta(days=2), status=models.Event.CANCELLED,
|
end_date=date.today() + timedelta(days=2), status=models.Event.CANCELLED,
|
||||||
description="cancelled in future")
|
description="cancelled in future"),
|
||||||
models.Event.objects.create(name="TE E9", start_date=date.today() - timedelta(days=1),
|
9: models.Event.objects.create(name="TE E9", start_date=date.today() - timedelta(days=1),
|
||||||
end_date=date.today() + timedelta(days=2), status=models.Event.CANCELLED,
|
end_date=date.today() + timedelta(days=2), status=models.Event.CANCELLED,
|
||||||
description="cancelled and started")
|
description="cancelled and started"),
|
||||||
|
|
||||||
# 5 dry hire - 3 current
|
# 5 dry hire - 3 current
|
||||||
models.Event.objects.create(name="TE E10", start_date=date.today(), dry_hire=True, description="dryhire today")
|
10: models.Event.objects.create(name="TE E10", start_date=date.today(), dry_hire=True,
|
||||||
models.Event.objects.create(name="TE E11", start_date=date.today(), dry_hire=True, checked_in_by=self.profile,
|
description="dryhire today"),
|
||||||
description="dryhire today, checked in")
|
11: models.Event.objects.create(name="TE E11", start_date=date.today(), dry_hire=True,
|
||||||
models.Event.objects.create(name="TE E12", start_date=date.today() - timedelta(days=1), dry_hire=True,
|
checked_in_by=cls.profile,
|
||||||
status=models.Event.BOOKED, description="dryhire past")
|
description="dryhire today, checked in"),
|
||||||
models.Event.objects.create(name="TE E13", start_date=date.today() - timedelta(days=2), dry_hire=True,
|
12: models.Event.objects.create(name="TE E12", start_date=date.today() - timedelta(days=1), dry_hire=True,
|
||||||
checked_in_by=self.profile, description="dryhire past checked in")
|
status=models.Event.BOOKED, description="dryhire past"),
|
||||||
models.Event.objects.create(name="TE E14", start_date=date.today(), dry_hire=True,
|
13: models.Event.objects.create(name="TE E13", start_date=date.today() - timedelta(days=2), dry_hire=True,
|
||||||
status=models.Event.CANCELLED, description="dryhire today cancelled")
|
checked_in_by=cls.profile, description="dryhire past checked in"),
|
||||||
|
14: models.Event.objects.create(name="TE E14", start_date=date.today(), dry_hire=True,
|
||||||
|
status=models.Event.CANCELLED, description="dryhire today cancelled"),
|
||||||
|
|
||||||
# 4 non rig - 3 current
|
# 4 non rig - 3 current
|
||||||
models.Event.objects.create(name="TE E15", start_date=date.today(), is_rig=False, description="non rig today")
|
15: models.Event.objects.create(name="TE E15", start_date=date.today(), is_rig=False,
|
||||||
models.Event.objects.create(name="TE E16", start_date=date.today() + timedelta(days=1), is_rig=False,
|
description="non rig today"),
|
||||||
description="non rig tomorrow")
|
16: models.Event.objects.create(name="TE E16", start_date=date.today() + timedelta(days=1), is_rig=False,
|
||||||
models.Event.objects.create(name="TE E17", start_date=date.today() - timedelta(days=1), is_rig=False,
|
description="non rig tomorrow"),
|
||||||
description="non rig yesterday")
|
17: models.Event.objects.create(name="TE E17", start_date=date.today() - timedelta(days=1), is_rig=False,
|
||||||
models.Event.objects.create(name="TE E18", start_date=date.today(), is_rig=False, status=models.Event.CANCELLED,
|
description="non rig yesterday"),
|
||||||
description="non rig today cancelled")
|
18: models.Event.objects.create(name="TE E18", start_date=date.today(), is_rig=False,
|
||||||
|
status=models.Event.CANCELLED,
|
||||||
|
description="non rig today cancelled"),
|
||||||
|
}
|
||||||
|
|
||||||
def test_count(self):
|
def test_count(self):
|
||||||
# Santiy check we have the expected events created
|
# Santiy check we have the expected events created
|
||||||
@@ -101,17 +112,23 @@ class EventTestCase(TestCase):
|
|||||||
def test_related_venue(self):
|
def test_related_venue(self):
|
||||||
v1 = models.Venue.objects.create(name="TE V1")
|
v1 = models.Venue.objects.create(name="TE V1")
|
||||||
v2 = models.Venue.objects.create(name="TE V2")
|
v2 = models.Venue.objects.create(name="TE V2")
|
||||||
events = models.Event.objects.all()
|
|
||||||
for event in events[:2]:
|
e1 = []
|
||||||
event.venue = v1
|
e2 = []
|
||||||
event.save()
|
for (key, event) in self.events.iteritems():
|
||||||
for event in events[3:4]:
|
if event.pk % 2:
|
||||||
event.venue = v2
|
event.venue = v1
|
||||||
|
e1.append(event)
|
||||||
|
else:
|
||||||
|
event.venue = v2
|
||||||
|
e2.append(event)
|
||||||
event.save()
|
event.save()
|
||||||
|
|
||||||
events = models.Event.objects.all()
|
self.assertItemsEqual(e1, v1.latest_events)
|
||||||
self.assertItemsEqual(events[:2], v1.latest_events)
|
self.assertItemsEqual(e2, v2.latest_events)
|
||||||
self.assertItemsEqual(events[3:4], v2.latest_events)
|
|
||||||
|
for (key, event) in self.events.iteritems():
|
||||||
|
event.venue = None
|
||||||
|
|
||||||
def test_related_vatrate(self):
|
def test_related_vatrate(self):
|
||||||
self.assertEqual(self.vatrate, models.Event.objects.all()[0].vat_rate)
|
self.assertEqual(self.vatrate, models.Event.objects.all()[0].vat_rate)
|
||||||
@@ -120,33 +137,43 @@ class EventTestCase(TestCase):
|
|||||||
p1 = models.Person.objects.create(name="TE P1")
|
p1 = models.Person.objects.create(name="TE P1")
|
||||||
p2 = models.Person.objects.create(name="TE P2")
|
p2 = models.Person.objects.create(name="TE P2")
|
||||||
|
|
||||||
events = models.Event.objects.all()
|
e1 = []
|
||||||
for event in events[:2]:
|
e2 = []
|
||||||
event.person = p1
|
for (key, event) in self.events.iteritems():
|
||||||
event.save()
|
if event.pk % 2:
|
||||||
for event in events[3:4]:
|
event.person = p1
|
||||||
event.person = p2
|
e1.append(event)
|
||||||
|
else:
|
||||||
|
event.person = p2
|
||||||
|
e2.append(event)
|
||||||
event.save()
|
event.save()
|
||||||
|
|
||||||
events = models.Event.objects.all()
|
self.assertItemsEqual(e1, p1.latest_events)
|
||||||
self.assertItemsEqual(events[:2], p1.latest_events)
|
self.assertItemsEqual(e2, p2.latest_events)
|
||||||
self.assertItemsEqual(events[3:4], p2.latest_events)
|
|
||||||
|
for (key, event) in self.events.iteritems():
|
||||||
|
event.person = None
|
||||||
|
|
||||||
def test_related_organisation(self):
|
def test_related_organisation(self):
|
||||||
o1 = models.Organisation.objects.create(name="TE O1")
|
o1 = models.Organisation.objects.create(name="TE O1")
|
||||||
o2 = models.Organisation.objects.create(name="TE O2")
|
o2 = models.Organisation.objects.create(name="TE O2")
|
||||||
|
|
||||||
events = models.Event.objects.all()
|
e1 = []
|
||||||
for event in events[:2]:
|
e2 = []
|
||||||
event.organisation = o1
|
for (key, event) in self.events.iteritems():
|
||||||
event.save()
|
if event.pk % 2:
|
||||||
for event in events[3:4]:
|
event.organisation = o1
|
||||||
event.organisation = o2
|
e1.append(event)
|
||||||
|
else:
|
||||||
|
event.organisation = o2
|
||||||
|
e2.append(event)
|
||||||
event.save()
|
event.save()
|
||||||
|
|
||||||
events = models.Event.objects.all()
|
self.assertItemsEqual(e1, o1.latest_events)
|
||||||
self.assertItemsEqual(events[:2], o1.latest_events)
|
self.assertItemsEqual(e2, o2.latest_events)
|
||||||
self.assertItemsEqual(events[3:4], o2.latest_events)
|
|
||||||
|
for (key, event) in self.events.iteritems():
|
||||||
|
event.organisation = None
|
||||||
|
|
||||||
def test_organisation_person_join(self):
|
def test_organisation_person_join(self):
|
||||||
p1 = models.Person.objects.create(name="TE P1")
|
p1 = models.Person.objects.create(name="TE P1")
|
||||||
@@ -184,20 +211,20 @@ class EventTestCase(TestCase):
|
|||||||
self.assertEqual(len(o2.persons), 1)
|
self.assertEqual(len(o2.persons), 1)
|
||||||
|
|
||||||
def test_cancelled_property(self):
|
def test_cancelled_property(self):
|
||||||
event = models.Event.objects.all()[0]
|
edit = self.events[1]
|
||||||
event.status = models.Event.CANCELLED
|
edit.status = models.Event.CANCELLED
|
||||||
event.save()
|
edit.save()
|
||||||
event = models.Event.objects.all()[0]
|
event = models.Event.objects.get(pk=edit.pk)
|
||||||
self.assertEqual(event.status, models.Event.CANCELLED)
|
self.assertEqual(event.status, models.Event.CANCELLED)
|
||||||
self.assertTrue(event.cancelled)
|
self.assertTrue(event.cancelled)
|
||||||
event.status = models.Event.PROVISIONAL
|
event.status = models.Event.PROVISIONAL
|
||||||
event.save()
|
event.save()
|
||||||
|
|
||||||
def test_confirmed_property(self):
|
def test_confirmed_property(self):
|
||||||
event = models.Event.objects.all()[0]
|
edit = self.events[1]
|
||||||
event.status = models.Event.CONFIRMED
|
edit.status = models.Event.CONFIRMED
|
||||||
event.save()
|
edit.save()
|
||||||
event = models.Event.objects.all()[0]
|
event = models.Event.objects.get(pk=edit.pk)
|
||||||
self.assertEqual(event.status, models.Event.CONFIRMED)
|
self.assertEqual(event.status, models.Event.CONFIRMED)
|
||||||
self.assertTrue(event.confirmed)
|
self.assertTrue(event.confirmed)
|
||||||
event.status = models.Event.PROVISIONAL
|
event.status = models.Event.PROVISIONAL
|
||||||
|
|||||||
18
wercker.yml
18
wercker.yml
@@ -10,10 +10,10 @@ box: heroku/python
|
|||||||
# You can also use services such as databases. Read more on our dev center:
|
# You can also use services such as databases. Read more on our dev center:
|
||||||
# http://devcenter.wercker.com/docs/services/index.html
|
# http://devcenter.wercker.com/docs/services/index.html
|
||||||
services:
|
services:
|
||||||
# - id: postgres
|
- id: postgres
|
||||||
# env:
|
env:
|
||||||
# POSTGRES_PASSWORD: pyrigstesting
|
POSTGRES_PASSWORD: pyrigstesting
|
||||||
# POSTGRES_USER: pyrigs
|
POSTGRES_USER: pyrigs
|
||||||
# http://devcenter.wercker.com/docs/services/postgresql.html
|
# http://devcenter.wercker.com/docs/services/postgresql.html
|
||||||
|
|
||||||
# - mongodb
|
# - mongodb
|
||||||
@@ -69,11 +69,11 @@ build:
|
|||||||
echo "pip version $(pip --version) running"
|
echo "pip version $(pip --version) running"
|
||||||
|
|
||||||
# Django uses this to connect to the database
|
# Django uses this to connect to the database
|
||||||
# - script:
|
- script:
|
||||||
# name: set environment
|
name: set environment
|
||||||
# code: |
|
code: |
|
||||||
# export DEBUG=0
|
export DEBUG=0
|
||||||
# export DATABASE_URL="postgres://pyrigs:pyrigstesting@$POSTGRES_PORT_5432_TCP_ADDR:$POSTGRES_PORT_5432_TCP_PORT$POSTGRES_NAME"
|
export DATABASE_URL="postgres://pyrigs:pyrigstesting@$POSTGRES_PORT_5432_TCP_ADDR:$POSTGRES_PORT_5432_TCP_PORT$POSTGRES_NAME"
|
||||||
|
|
||||||
# A step that executes `pip install` command.
|
# A step that executes `pip install` command.
|
||||||
- pip-install
|
- pip-install
|
||||||
|
|||||||
Reference in New Issue
Block a user