~pidgeon690/pidge-groups/trunk

« back to all changes in this revision

Viewing changes to Apps/Events/tests/views.py

  • Committer: Fergus Ross Ferrier
  • Date: 2009-05-25 22:10:29 UTC
  • mfrom: (273.2.4 refactor+user)
  • Revision ID: hello@fergusrossferrier.co.uk-20090525221029-gqdycg3rfhxujqpz
Merged user-refactor fun.

Show diffs side-by-side

added added

removed removed

Lines of Context:
2
2
Events.tests.views
3
3
'''
4
4
 
5
 
from Events.models import Event, EventTime, EventTag, Observance
6
 
from Groups.models import Group, GroupCategory
7
 
from Users.models import Reminder, User, Membership
 
5
from Events.models import Event, EventTime, EventTag, Observance, EventsUser, Reminder
 
6
from Groups.models import Group, GroupCategory, GroupsUser, Membership
 
7
from django.contrib.auth.models import User
8
8
from django.test import TestCase, Client
9
9
from django.core import mail
10
10
from django.core.urlresolvers import reverse
11
11
from datetime import datetime, timedelta
12
12
 
 
13
dummyuser_data = {
 
14
    'username': 'john',
 
15
    'email': 'lennon@thebeatles.com',
 
16
    'password': 'johnpassword'
 
17
}
 
18
 
13
19
class BasicViewTests(TestCase):
14
20
    def setUp(self):
15
21
        # Reqd so that PREPEND_WWW in settings doesn't cause all view tests to fail
187
193
            start = "2009-12-30 16:00:00",
188
194
            finish = "2009-12-30 18:00:00")
189
195
        
190
 
        self.fergus = User.objects.create(
191
 
            firstname="Fergus",
192
 
            lastname="Ferrier",
193
 
            email="fff21@cam.ac.uk",
194
 
            password = "blah",
195
 
            membershipstatus="OK",
196
 
            activationlinkkey="imokay")
197
 
        self.fergus.UpdatePassword("password")
 
196
        self.fergus = User.objects.create_user(
 
197
            dummyuser_data['username'],
 
198
            dummyuser_data['email'],
 
199
            dummyuser_data['password'],
 
200
        )
 
201
                
 
202
        self.fergus_events = EventsUser.objects.create(user = self.fergus)
 
203
        self.fergus_groups = GroupsUser.objects.create(user = self.fergus)
198
204
        
199
 
        self.client.post(
200
 
            reverse('Users.views.Login', args=[""]),
201
 
            {'email': self.fergus.email, 'password': "password"})
 
205
        self.client.login(
 
206
            username = dummyuser_data['username'],
 
207
            password = dummyuser_data['password']
 
208
        )
 
209
 
202
210
    
203
211
    # Event page user functions
204
212
    
205
213
    def test_event_reminder_day(self):
206
214
        ''' View an event with the day reminder set '''
207
 
        Reminder.objects.create(person = self.fergus, event = self.event, assoctype='EML_DY')
 
215
        Reminder.objects.create(events_user = self.fergus.eventsuser, event = self.event, assoctype='EML_DY')
208
216
        response = self.client.get(reverse('Events.views.ViewEvent', args=[self.event.id]))
209
217
        self.assertContains(response, "<input id='day' name='day' type='checkbox' checked value='1'/>", count=1, status_code=200)
210
218
 
211
219
    def test_event_reminder_hour(self):
212
220
        ''' View an event with the hour reminder set '''
213
 
        Reminder.objects.create(person = self.fergus, event = self.event, assoctype='EML_HR')
 
221
        Reminder.objects.create(events_user = self.fergus.eventsuser, event = self.event, assoctype='EML_HR')
214
222
        response = self.client.get(reverse('Events.views.ViewEvent', args=[self.event.id]))
215
223
        self.assertContains(response, "<input id='hour' name='hour' type='checkbox' checked value='1'/>", count=1, status_code=200)        
216
224
    
220
228
        self.assertNotContains(response, "Edit this Event", status_code=200)
221
229
        self.assertNotContains(response, "(delete)", status_code=200)
222
230
        self.assertNotContains(response, "Add another time for this event", status_code=200)
223
 
        Membership.objects.create(person = self.fergus, group = self.group, assoctype = "CTL")
 
231
        Membership.objects.create(groups_user = self.fergus.groupsuser, group = self.group, assoctype = "CTL")
224
232
        response = self.client.get(reverse('Events.views.ViewEvent', args=[self.event.id]))
225
233
        self.assertContains(response, "Edit this Event", status_code=200)
226
234
        self.assertContains(response, "(delete)", status_code=200)
232
240
        ''' Show the groups to which a user may add a group '''
233
241
        response = self.client.get(reverse('Events.views.Add'))
234
242
        self.assertEquals(response.status_code, 200)
235
 
        Membership.objects.create(person = self.fergus, group = self.group, assoctype = "CTL")
 
243
        Membership.objects.create(groups_user = self.fergus.groupsuser, group = self.group, assoctype = "CTL")
236
244
        response = self.client.get(reverse('Events.views.Add'))
237
245
        self.assertContains(response, "My Python", status_code=200)
238
246
    
240
248
    
241
249
    def test_event_add_group(self):
242
250
        ''' Show the fresh or clone add event page '''
243
 
        Membership.objects.create(person = self.fergus, group = self.group, assoctype = "CTL")
 
251
        Membership.objects.create(groups_user = self.fergus.groupsuser, group = self.group, assoctype = "CTL")
244
252
        response = self.client.get(reverse('Events.views.AddOrClone', args=[self.group.id]))
245
253
        self.assertContains(response, "Dull Old Event", status_code=200)
246
254
        
278
286
    
279
287
    def test_event_add_to_group(self):
280
288
        ''' Create an event from scratch for a group '''
281
 
        Membership.objects.create(person = self.fergus, group = self.group, assoctype = "CTL")
 
289
        Membership.objects.create(groups_user = self.fergus.groupsuser, group = self.group, assoctype = "CTL")
282
290
        response = self.client.get(reverse('Events.views.AddToGroup', args=[self.group.id]))
283
291
        self.assertEquals(response.status_code, 200)
284
292
    
285
293
    def test_event_add_to_group_clone(self):
286
294
        ''' Clone an event for a group '''
287
 
        Membership.objects.create(person = self.fergus, group = self.group, assoctype = "CTL")
 
295
        Membership.objects.create(groups_user = self.fergus.groupsuser, group = self.group, assoctype = "CTL")
288
296
        response = self.client.get(reverse('Events.views.AddToGroup', args=[self.group.id]), {'clone': self.event.id})
289
297
        self.assertContains(response, self.event.title, count = 1, status_code = 200)
290
298
        
291
299
    def test_event_add_to_group_post(self):
292
300
        ''' Submitting a new event for a group '''
293
 
        Membership.objects.create(person = self.fergus, group = self.group, assoctype = "CTL")
 
301
        Membership.objects.create(groups_user = self.fergus.groupsuser, group = self.group, assoctype = "CTL")
294
302
        response = self.client.post(reverse('Events.views.AddToGroup', args=[self.group.id]), {
295
303
            'title': "New Event",
296
304
            'description': "It's vonderful and newwwww.",
312
320
 
313
321
    def test_event_edit(self):
314
322
        ''' Trying to edit an event '''
315
 
        Membership.objects.create(person = self.fergus, group = self.group, assoctype = "CTL")
 
323
        Membership.objects.create(groups_user = self.fergus.groupsuser, group = self.group, assoctype = "CTL")
316
324
        response = self.client.get(reverse('Events.views.EditEvent', args=[self.event.id]))
317
325
        self.assertContains(response, self.event.title, status_code = 200)    
318
326
    
319
327
    def test_event_edit_post(self):
320
328
        ''' Updating an event '''
321
 
        Membership.objects.create(person = self.fergus, group = self.group, assoctype = "CTL")
 
329
        Membership.objects.create(groups_user = self.fergus.groupsuser, group = self.group, assoctype = "CTL")
322
330
        response = self.client.post(reverse('Events.views.EditEvent', args=[self.event.id]), {
323
331
            'title': 'New Title',
324
332
            'description': 'Newer than before. yes. ',
331
339
    # Delete EventTime
332
340
    def test_event_time_delete_confirm(self):
333
341
        ''' Confirm that you want to remove an eventtime '''
334
 
        Membership.objects.create(person = self.fergus, group = self.group, assoctype = "CTL")
 
342
        Membership.objects.create(groups_user = self.fergus.groupsuser, group = self.group, assoctype = "CTL")
335
343
        response = self.client.get(reverse('Events.views.DeleteTime', args=[self.event.id, self.eventtime.id]))
336
344
        self.assertEquals(response.status_code, 200)
337
345
    
338
346
    def test_event_time_delete(self):
339
347
        ''' Remove an EventTime '''
340
 
        Membership.objects.create(person = self.fergus, group = self.group, assoctype = "CTL")
 
348
        Membership.objects.create(groups_user = self.fergus.groupsuser, group = self.group, assoctype = "CTL")
341
349
        response = self.client.post(reverse('Events.views.DeleteTime', args=[self.event.id, self.eventtime.id]), {'blank':'1'})
342
350
        self.assertRaises(EventTime.DoesNotExist, EventTime.objects.get, id = self.eventtime.id)
343
351
        self.assertRedirects(response, reverse('Events.views.ViewEvent', args=[self.event.id]), host = self.host)
347
355
    
348
356
    def test_event_time_add(self):
349
357
        ''' Add an EventTime form shows '''
350
 
        Membership.objects.create(person = self.fergus, group = self.group, assoctype = "CTL")
 
358
        Membership.objects.create(groups_user = self.fergus.groupsuser, group = self.group, assoctype = "CTL")
351
359
        response = self.client.get(reverse('Events.views.AddTime', args=[self.event.id]))
352
360
        self.assertNotContains(response, "This event has been added.", status_code = 200)
353
361
        
354
362
    def test_event_time_added(self):
355
363
        ''' Adding an EventTime after adding the event '''
356
 
        Membership.objects.create(person = self.fergus, group = self.group, assoctype = "CTL")
 
364
        Membership.objects.create(groups_user = self.fergus.groupsuser, group = self.group, assoctype = "CTL")
357
365
        response = self.client.get(reverse('Events.views.NowAddTime', args=[self.event.id]))
358
366
        self.assertContains(response, "This event has been added.", count = 1, status_code = 200)
359
367
        
360
368
    def test_event_time_add_negative(self):
361
369
        ''' Adding an EventTime with finish before start! '''
362
 
        Membership.objects.create(person = self.fergus, group = self.group, assoctype = "CTL")
 
370
        Membership.objects.create(groups_user = self.fergus.groupsuser, group = self.group, assoctype = "CTL")
363
371
        response = self.client.post(reverse('Events.views.NowAddTime', args=[self.event.id]), {
364
372
            'start': '2008-12-31 10:20:11',
365
373
            'finish': '2008-12-30 12:00:00'})
368
376
 
369
377
    def test_event_time_add_okay(self):
370
378
        ''' Adding an EventTime '''
371
 
        Membership.objects.create(person = self.fergus, group = self.group, assoctype = "CTL")
 
379
        Membership.objects.create(groups_user = self.fergus.groupsuser, group = self.group, assoctype = "CTL")
372
380
        response = self.client.post(reverse('Events.views.NowAddTime', args=[self.event.id]), {
373
381
            'start': '2008-12-31 10:20:11',
374
382
            'finish': '2008-12-31 12:00:00'})
377
385
 
378
386
    def test_event_time_add_no_end(self):
379
387
        ''' Adding an EventTime with no end time'''
380
 
        Membership.objects.create(person = self.fergus, group = self.group, assoctype = "CTL")
 
388
        Membership.objects.create(groups_user = self.fergus.groupsuser, group = self.group, assoctype = "CTL")
381
389
        response = self.client.post(reverse('Events.views.NowAddTime', args=[self.event.id]), {
382
390
            'start': '2008-12-31 10:20:11'})
383
391
        self.assertNotContains(response, "The finish time was before the start time! Please correct this and resubmit.", status_code = 200)
385
393
 
386
394
    def test_event_time_add_date_end(self):
387
395
        ''' Adding an EventTime with date end time'''
388
 
        Membership.objects.create(person = self.fergus, group = self.group, assoctype = "CTL")
 
396
        Membership.objects.create(groups_user = self.fergus.groupsuser, group = self.group, assoctype = "CTL")
389
397
        response = self.client.post(reverse('Events.views.NowAddTime', args=[self.event.id]), {
390
398
            'start': '2008-12-31 10:20:11',
391
399
            'finish': '2009-01-01'})
394
402
 
395
403
    def test_event_time_add_date_start(self):
396
404
        ''' Adding an EventTime with date start time only'''
397
 
        Membership.objects.create(person = self.fergus, group = self.group, assoctype = "CTL")
 
405
        Membership.objects.create(groups_user = self.fergus.groupsuser, group = self.group, assoctype = "CTL")
398
406
        response = self.client.post(reverse('Events.views.NowAddTime', args=[self.event.id]), {
399
407
            'start': '2008-12-31'})
400
408
        # self.assertEquals(response.content, "")
405
413
        ''' Set 1 hour reminder for event '''
406
414
        response = self.client.get(reverse('Events.views.SetReminders', args=[self.event.id]), {'hour': '1'})
407
415
        self.assertRedirects(response, reverse('Events.views.ViewEvent', args=[self.event.id]), host = self.host)
408
 
        self.assertEquals(Reminder.objects.filter(person = self.fergus, event = self.event, assoctype = "EML_HR").count(), 1)
409
 
        self.assertEquals(Reminder.objects.filter(person = self.fergus, event = self.event, assoctype = "EML_DY").count(), 0)
 
416
        self.assertEquals(Reminder.objects.filter(events_user = self.fergus.eventsuser, event = self.event, assoctype = "EML_HR").count(), 1)
 
417
        self.assertEquals(Reminder.objects.filter(events_user = self.fergus.eventsuser, event = self.event, assoctype = "EML_DY").count(), 0)
410
418
 
411
419
    def test_set_reminder_day(self):
412
420
        ''' Set 1 day reminder for event '''
413
421
        response = self.client.get(reverse('Events.views.SetReminders', args=[self.event.id]), {'day': '1'})
414
422
        self.assertRedirects(response, reverse('Events.views.ViewEvent', args=[self.event.id]), host = self.host)
415
 
        self.assertEquals(Reminder.objects.filter(person = self.fergus, event = self.event, assoctype = "EML_DY").count(), 1)        
416
 
        self.assertEquals(Reminder.objects.filter(person = self.fergus, event = self.event, assoctype = "EML_HR").count(), 0)
 
423
        self.assertEquals(Reminder.objects.filter(events_user = self.fergus.eventsuser, event = self.event, assoctype = "EML_DY").count(), 1)        
 
424
        self.assertEquals(Reminder.objects.filter(events_user = self.fergus.eventsuser, event = self.event, assoctype = "EML_HR").count(), 0)
417
425
 
418
426
    def test_set_reminder_unset(self):
419
427
        ''' Set both reminders, and then unset both '''
420
428
        response = self.client.get(reverse('Events.views.SetReminders', args=[self.event.id]), {'day': '1', 'hour': '1'})
421
 
        self.assertEquals(Reminder.objects.filter(person = self.fergus, event = self.event, assoctype = "EML_DY").count(), 1)        
422
 
        self.assertEquals(Reminder.objects.filter(person = self.fergus, event = self.event, assoctype = "EML_HR").count(), 1)
 
429
        self.assertEquals(Reminder.objects.filter(events_user = self.fergus_events, event = self.event, assoctype = "EML_DY").count(), 1)        
 
430
        self.assertEquals(Reminder.objects.filter(events_user = self.fergus.eventsuser, event = self.event, assoctype = "EML_HR").count(), 1)
423
431
        response = self.client.get(reverse('Events.views.SetReminders', args=[self.event.id]), {'day': '0', 'hour': '0'})
424
 
        self.assertEquals(Reminder.objects.filter(person = self.fergus, event = self.event, assoctype = "EML_DY").count(), 0)        
425
 
        self.assertEquals(Reminder.objects.filter(person = self.fergus, event = self.event, assoctype = "EML_HR").count(), 0)    
 
 
b'\\ No newline at end of file'
 
432
        self.assertEquals(Reminder.objects.filter(events_user = self.fergus.eventsuser, event = self.event, assoctype = "EML_DY").count(), 0)        
 
433
        self.assertEquals(Reminder.objects.filter(events_user = self.fergus.eventsuser, event = self.event, assoctype = "EML_HR").count(), 0)