Changeset View
Changeset View
Standalone View
Standalone View
tests/functional/test_wallace/test_006_resource_performance.py
Show All 29 Lines | def setUp(self): | ||||
if not self.rooms: | if not self.rooms: | ||||
self.setup_class() | self.setup_class() | ||||
@classmethod | @classmethod | ||||
def setup_class(self, *args, **kw): | def setup_class(self, *args, **kw): | ||||
funcs.purge_resources() | funcs.purge_resources() | ||||
self.room1 = funcs.resource_add("confroom", "Room 101") | self.room1 = funcs.resource_add("confroom", "Room 101") | ||||
self.room2 = funcs.resource_add("confroom", "Conference Room B-222") | self.room2 = funcs.resource_add("confroom", "Conference Room B-222") | ||||
self.rooms = funcs.resource_add("collection", "Rooms", [ self.room1['dn'], self.room2['dn'] ]) | self.rooms = funcs.resource_add("collection", "Rooms", [self.room1['dn'], self.room2['dn']]) | ||||
Lint: PEP8 E501: line too long (100 > 79 characters) | |||||
time.sleep(1) | time.sleep(1) | ||||
synchronize_once() | synchronize_once() | ||||
module_resources.imap = IMAP() | module_resources.imap = IMAP() | ||||
module_resources.imap.connect() | module_resources.imap.connect() | ||||
def purge_mailbox(self, mailbox): | def purge_mailbox(self, mailbox): | ||||
Show All 12 Lines | class TestWallacePerformance(unittest.TestCase): | ||||
def populate_calendar(self, resource, num=10, date=None): | def populate_calendar(self, resource, num=10, date=None): | ||||
if date is None: | if date is None: | ||||
date = datetime.datetime.now(pytz.timezone("Europe/London")) | date = datetime.datetime.now(pytz.timezone("Europe/London")) | ||||
i = 0 | i = 0 | ||||
while i < num: | while i < num: | ||||
offset = random.randint(-3200, 3200) * 10 | offset = random.randint(-3200, 3200) * 10 | ||||
duration = random.randint(3, 72) * 10 | duration = random.randint(3, 72) * 10 | ||||
summary = ''.join(random.sample((string.ascii_uppercase + string.digits) * 12, random.randint(6, 18))) | summary = ''.join(random.sample((string.ascii_uppercase + string.digits) * 12, random.randint(6, 18))) | ||||
Lint: PEP8 E501 line too long (114 > 79 characters) Lint: PEP8 E501: line too long (114 > 79 characters) | |||||
start = date + datetime.timedelta(minutes=offset) | start = date + datetime.timedelta(minutes=offset) | ||||
event = Event() | event = Event() | ||||
event.set_summary(summary) | event.set_summary(summary) | ||||
event.set_start(start) | event.set_start(start) | ||||
event.set_end(start + datetime.timedelta(minutes=duration)) | event.set_end(start + datetime.timedelta(minutes=duration)) | ||||
saved = module_resources.save_resource_event(dict(xml=event), resource) | saved = module_resources.save_resource_event(dict(xml=event), resource) | ||||
Lint: PEP8 E501 line too long (83 > 79 characters) Lint: PEP8 E501: line too long (83 > 79 characters) | |||||
i += 1 | i += 1 | ||||
def test_001_save_resource_event(self): | def test_001_save_resource_event(self): | ||||
event = Event() | event = Event() | ||||
event.set_summary("test") | event.set_summary("test") | ||||
date = datetime.datetime.now(pytz.timezone("Europe/London")) | date = datetime.datetime.now(pytz.timezone("Europe/London")) | ||||
event.set_start(date) | event.set_start(date) | ||||
event.set_end(date + datetime.timedelta(hours=2)) | event.set_end(date + datetime.timedelta(hours=2)) | ||||
saved = module_resources.save_resource_event(dict(xml=event), self.room1) | saved = module_resources.save_resource_event(dict(xml=event), self.room1) | ||||
Lint: PEP8 E501 line too long (81 > 79 characters) Lint: PEP8 E501: line too long (81 > 79 characters) | |||||
self.assertTrue(saved) | self.assertTrue(saved) | ||||
def test_002_read_resource_calendar(self): | def test_002_read_resource_calendar(self): | ||||
self.purge_mailbox(self.room1['kolabtargetfolder']) | self.purge_mailbox(self.room1['kolabtargetfolder']) | ||||
event = Event() | event = Event() | ||||
event.set_summary("test") | event.set_summary("test") | ||||
event.set_start(datetime.datetime(2014,4,1, 12,0,0, tzinfo=pytz.timezone("Europe/London"))) | event.set_start(datetime.datetime(2014, 4, 1, 12, 0, 0, tzinfo=pytz.timezone("Europe/London"))) | ||||
Lint: PEP8 E501 line too long (103 > 79 characters) Lint: PEP8 E501: line too long (103 > 79 characters) | |||||
event.set_end(datetime.datetime(2014,4,1, 14,0,0, tzinfo=pytz.timezone("Europe/London"))) | event.set_end(datetime.datetime(2014, 4, 1, 14, 0, 0, tzinfo=pytz.timezone("Europe/London"))) | ||||
Lint: PEP8 E501 line too long (101 > 79 characters) Lint: PEP8 E501: line too long (101 > 79 characters) | |||||
saved = module_resources.save_resource_event(dict(xml=event), self.room1) | saved = module_resources.save_resource_event(dict(xml=event), self.room1) | ||||
Lint: PEP8 E501 line too long (81 > 79 characters) Lint: PEP8 E501: line too long (81 > 79 characters) | |||||
self.assertTrue(saved) | self.assertTrue(saved) | ||||
uid = event.get_uid() | uid = event.get_uid() | ||||
itip = dict( | itip = dict( | ||||
uid = str(uuid.uuid4()), | uid=str(uuid.uuid4()), | ||||
sequence = 0, | sequence=0, | ||||
start = datetime.datetime(2014,4,1, 13,0,0, tzinfo=pytz.timezone("Europe/London")), | start=datetime.datetime(2014, 4, 1, 13, 0, 0, tzinfo=pytz.timezone("Europe/London")), | ||||
Lint: PEP8 E501 line too long (97 > 79 characters) Lint: PEP8 E501: line too long (97 > 79 characters) | |||||
end = datetime.datetime(2014,4,1, 14,30,0, tzinfo=pytz.timezone("Europe/London")) | end=datetime.datetime(2014, 4, 1, 14, 30, 0, tzinfo=pytz.timezone("Europe/London")) | ||||
Lint: PEP8 E501 line too long (95 > 79 characters) Lint: PEP8 E501: line too long (95 > 79 characters) | |||||
) | ) | ||||
event.set_uid(itip['uid']) | event.set_uid(itip['uid']) | ||||
event.set_start(itip['start']) | event.set_start(itip['start']) | ||||
event.set_end(itip['end']) | event.set_end(itip['end']) | ||||
itip['xml'] = event | itip['xml'] = event | ||||
res = module_resources.read_resource_calendar(self.room1, [ itip ]) | res = module_resources.read_resource_calendar(self.room1, [itip]) | ||||
self.assertEqual(res, 1) | self.assertEqual(res, 1) | ||||
self.assertTrue(self.room1['conflict']) | self.assertTrue(self.room1['conflict']) | ||||
self.assertIn(uid, self.room1['conflicting_events']) | self.assertIn(uid, self.room1['conflicting_events']) | ||||
def test_003_read_time(self): | def test_003_read_time(self): | ||||
self.purge_mailbox(self.room1['kolabtargetfolder']) | self.purge_mailbox(self.room1['kolabtargetfolder']) | ||||
# populate 5K random events | # populate 5K random events | ||||
num = 5000 | num = 5000 | ||||
date = datetime.datetime.now(pytz.timezone("Europe/London")).replace(hour=10, minute=0, second=0, microsecond=0) | date = datetime.datetime.now(pytz.timezone("Europe/London")).replace(hour=10, minute=0, second=0, microsecond=0) | ||||
Lint: PEP8 E501 line too long (120 > 79 characters) Lint: PEP8 E501: line too long (120 > 79 characters) | |||||
self.populate_calendar(self.room1, num, date) | self.populate_calendar(self.room1, num, date) | ||||
itip = dict( | itip = dict( | ||||
uid = str(uuid.uuid4()), | uid=str(uuid.uuid4()), | ||||
sequence = 0, | sequence=0, | ||||
start = date, | start=date, | ||||
end = date + datetime.timedelta(minutes=90) | end=date + datetime.timedelta(minutes=90) | ||||
) | ) | ||||
event = Event() | event = Event() | ||||
event.set_uid(itip['uid']) | event.set_uid(itip['uid']) | ||||
event.set_start(itip['start']) | event.set_start(itip['start']) | ||||
event.set_end(itip['end']) | event.set_end(itip['end']) | ||||
itip['xml'] = event | itip['xml'] = event | ||||
start = time.time() | start = time.time() | ||||
res = module_resources.read_resource_calendar(self.room1, [ itip ]) | res = module_resources.read_resource_calendar(self.room1, [itip]) | ||||
self.assertEqual(res, num) | self.assertEqual(res, num) | ||||
print "\nREAD TIME:", time.time() - start | print "\nREAD TIME:", time.time() - start | ||||
print "CONFLICTS:", self.room1['conflicting_events'] | print "CONFLICTS:", self.room1['conflicting_events'] |
line too long (100 > 79 characters)