Merge branch 'master' into training

This commit is contained in:
Tom Price
2015-12-22 23:08:02 +00:00
2 changed files with 217 additions and 186 deletions

View File

@@ -38,7 +38,10 @@ class Profile(AbstractUser):
@property @property
def name(self): def name(self):
return self.get_full_name() + ' "' + self.initials + '"' name = self.get_full_name()
if self.initials:
name += ' "{}"'.format(self.initials)
return name
@property @property
def latest_events(self): def latest_events(self):

View File

@@ -3,10 +3,19 @@ from RIGS import models
from datetime import date, timedelta from datetime import date, timedelta
from decimal import * from decimal import *
class ProfileTestCase(TestCase):
def test_str(self):
profile = models.Profile(first_name='Test', last_name='Case')
self.assertEqual(str(profile), 'Test Case')
profile.initials = 'TC'
self.assertEqual(str(profile), 'Test Case "TC"')
class VatRateTestCase(TestCase): class VatRateTestCase(TestCase):
def setUp(self): def setUp(self):
models.VatRate.objects.create(start_at='2014-03-01',rate=0.20,comment='test1') models.VatRate.objects.create(start_at='2014-03-01', rate=0.20, comment='test1')
models.VatRate.objects.create(start_at='2016-03-01',rate=0.15,comment='test2') 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')
@@ -18,40 +27,57 @@ class VatRateTestCase(TestCase):
r = models.VatRate.objects.get(rate=0.20) r = models.VatRate.objects.get(rate=0.20)
self.assertEqual(r.as_percent, 20) self.assertEqual(r.as_percent, 20)
class EventTestCase(TestCase): class EventTestCase(TestCase):
def setUp(self): def setUp(self):
self.all_events = set(range(1, 18)) self.all_events = set(range(1, 18))
self.current_events = (1, 2, 3, 6, 7, 8, 10, 11, 12, 14, 15, 16, 18) self.current_events = (1, 2, 3, 6, 7, 8, 10, 11, 12, 14, 15, 16, 18)
self.not_current_events = set(self.all_events) - set(self.current_events) self.not_current_events = set(self.all_events) - set(self.current_events)
self.vatrate = models.VatRate.objects.create(start_at='2014-03-05',rate=0.20,comment='test1') self.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") self.profile = models.Profile.objects.create(username="testuser1", email="1@test.com")
# produce 7 normal events - 5 current # produce 7 normal events - 5 current
models.Event.objects.create(name="TE E1", start_date=date.today() + timedelta(days=6), description="start future no end") models.Event.objects.create(name="TE E1", start_date=date.today() + timedelta(days=6),
description="start future no end")
models.Event.objects.create(name="TE E2", start_date=date.today(), description="start today no end") models.Event.objects.create(name="TE E2", start_date=date.today(), description="start today no end")
models.Event.objects.create(name="TE E3", start_date=date.today(), end_date=date.today(), description="start today with end today") models.Event.objects.create(name="TE E3", start_date=date.today(), end_date=date.today(),
description="start today with end today")
models.Event.objects.create(name="TE E4", start_date='2014-03-20', description="start past no end") models.Event.objects.create(name="TE E4", start_date='2014-03-20', description="start past no end")
models.Event.objects.create(name="TE E5", start_date='2014-03-20', end_date='2014-03-21', description="start past with end past") 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), end_date=date.today()+timedelta(days=2), description="start past, end future") description="start past with end past")
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") models.Event.objects.create(name="TE E6", start_date=date.today() - timedelta(days=2),
end_date=date.today() + timedelta(days=2), description="start past, end future")
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), end_date=date.today()+timedelta(days=2), status=models.Event.CANCELLED, description="cancelled in future") models.Event.objects.create(name="TE E8", start_date=date.today() + timedelta(days=2),
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, description="cancelled and started") end_date=date.today() + timedelta(days=2), status=models.Event.CANCELLED,
description="cancelled in future")
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,
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") models.Event.objects.create(name="TE E10", start_date=date.today(), dry_hire=True, description="dryhire today")
models.Event.objects.create(name="TE E11", start_date=date.today(), dry_hire=True, checked_in_by=self.profile, description="dryhire today, checked in") models.Event.objects.create(name="TE E11", start_date=date.today(), dry_hire=True, checked_in_by=self.profile,
models.Event.objects.create(name="TE E12", start_date=date.today()-timedelta(days=1), dry_hire=True, 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, checked_in_by=self.profile, description="dryhire past checked in") models.Event.objects.create(name="TE E12", start_date=date.today() - timedelta(days=1), dry_hire=True,
models.Event.objects.create(name="TE E14", start_date=date.today(), dry_hire=True, status=models.Event.CANCELLED, description="dryhire today cancelled") status=models.Event.BOOKED, description="dryhire past")
models.Event.objects.create(name="TE E13", start_date=date.today() - timedelta(days=2), dry_hire=True,
checked_in_by=self.profile, description="dryhire past checked in")
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") models.Event.objects.create(name="TE E15", start_date=date.today(), is_rig=False, description="non rig today")
models.Event.objects.create(name="TE E16", start_date=date.today()+timedelta(days=1), is_rig=False, description="non rig tomorrow") 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 yesterday") description="non rig tomorrow")
models.Event.objects.create(name="TE E18", start_date=date.today(), is_rig=False, status=models.Event.CANCELLED, description="non rig today cancelled") models.Event.objects.create(name="TE E17", start_date=date.today() - timedelta(days=1), is_rig=False,
description="non rig yesterday")
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
@@ -65,10 +91,10 @@ class EventTestCase(TestCase):
current_events = models.Event.objects.current_events() current_events = models.Event.objects.current_events()
self.assertEqual(len(current_events), len(self.current_events)) self.assertEqual(len(current_events), len(self.current_events))
for eid in self.current_events: for eid in self.current_events:
self.assertIn(models.Event.objects.get(name="TE E%d"%eid), current_events) self.assertIn(models.Event.objects.get(name="TE E%d" % eid), current_events)
for eid in self.not_current_events: for eid in self.not_current_events:
self.assertNotIn(models.Event.objects.get(name="TE E%d"%eid), current_events) self.assertNotIn(models.Event.objects.get(name="TE E%d" % eid), current_events)
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")
@@ -144,16 +170,16 @@ class EventTestCase(TestCase):
events = models.Event.objects.all() events = models.Event.objects.all()
# Check person's organisations # Check person's organisations
self.assertIn((o1,2), p1.organisations) self.assertIn((o1, 2), p1.organisations)
self.assertIn((o2,1), p1.organisations) self.assertIn((o2, 1), p1.organisations)
self.assertIn((o1,2), p2.organisations) self.assertIn((o1, 2), p2.organisations)
self.assertEqual(len(p2.organisations), 1) self.assertEqual(len(p2.organisations), 1)
# Check organisation's persons # Check organisation's persons
self.assertIn((p1,2), o1.persons) self.assertIn((p1, 2), o1.persons)
self.assertIn((p2,2), o1.persons) self.assertIn((p2, 2), o1.persons)
self.assertIn((p1,1), o2.persons) self.assertIn((p1, 1), o2.persons)
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] event = models.Event.objects.all()[0]
@@ -175,6 +201,7 @@ class EventTestCase(TestCase):
event.status = models.Event.PROVISIONAL event.status = models.Event.PROVISIONAL
event.save() event.save()
class EventItemTestCase(TestCase): class EventItemTestCase(TestCase):
def setUp(self): def setUp(self):
self.e1 = models.Event.objects.create(name="TI E1", start_date=date.today()) self.e1 = models.Event.objects.create(name="TI E1", start_date=date.today())
@@ -200,11 +227,12 @@ class EventItemTestCase(TestCase):
items = self.e1.items.all() items = self.e1.items.all()
self.assertListEqual([i1, i2], list(items)) self.assertListEqual([i1, i2], list(items))
class EventPricingTestCase(TestCase): class EventPricingTestCase(TestCase):
def setUp(self): def setUp(self):
models.VatRate.objects.create(rate=0.20, comment="TP V1", start_at='2013-01-01') models.VatRate.objects.create(rate=0.20, comment="TP V1", start_at='2013-01-01')
models.VatRate.objects.create(rate=0.10, comment="TP V2", start_at=date.today()-timedelta(days=1)) models.VatRate.objects.create(rate=0.10, comment="TP V2", start_at=date.today() - timedelta(days=1))
self.e1 = models.Event.objects.create(name="TP E1", start_date=date.today()-timedelta(days=2)) self.e1 = models.Event.objects.create(name="TP E1", start_date=date.today() - timedelta(days=2))
self.e2 = models.Event.objects.create(name="TP E2", start_date=date.today()) self.e2 = models.Event.objects.create(name="TP E2", start_date=date.today())
# Create some items E1, total 70.40 # Create some items E1, total 70.40