/timepiece/tests/user_settings.py

https://bitbucket.org/copelco/django-timepiece/ · Python · 61 lines · 54 code · 7 blank · 0 comment · 2 complexity · b77c06af28dacf1883f7ab81c0d70a22 MD5 · raw file

  1. from django.test import Client
  2. from django.core.urlresolvers import reverse
  3. from django.contrib.auth import models as auth_models
  4. from timepiece import models as timepiece
  5. from timepiece import forms
  6. from timepiece.tests.base import TimepieceDataTestCase
  7. class EditSettingsTest(TimepieceDataTestCase):
  8. def setUp(self):
  9. super(EditSettingsTest, self).setUp()
  10. self.client = Client()
  11. self.url = reverse('edit_settings')
  12. self.client.login(username='user', password='abc')
  13. self.activities = []
  14. for i in range(0, 5):
  15. self.activities.append(self.create_activity())
  16. def edit_profile(self, url, data):
  17. response = self.client.post(url, data)
  18. return response
  19. def test_success_next(self):
  20. response = self.client.get(self.url)
  21. self.assertEquals(response.status_code, 200)
  22. data = {
  23. 'first_name': 'Michael',
  24. 'last_name': 'Clemmons',
  25. 'email': 'test@caktusgroup.com',
  26. }
  27. response = self.edit_profile(self.url, data)
  28. self.assertRedirects(response, reverse('timepiece-entries'))
  29. self.user = auth_models.User.objects.get(pk=self.user.pk)
  30. for k, v in data.iteritems():
  31. value = getattr(self.user, k)
  32. self.assertEquals(value, v)
  33. next = reverse('timepiece-clock-in')
  34. next_query_url = '%s?next=%s' % (self.url, next)
  35. data = {
  36. 'first_name': 'Terry',
  37. 'last_name': 'Pratchet',
  38. 'email': 'test@caktusgroup.com',
  39. 'default_activity': self.activities[0].pk,
  40. }
  41. response = self.edit_profile(next_query_url, data)
  42. self.assertRedirects(response, next)
  43. self.profile = timepiece.UserProfile.objects.get(user=self.user)
  44. self.assertEquals(self.profile.default_activity, self.activities[0])
  45. def test_default_activities(self):
  46. profile = timepiece.UserProfile.objects.create(
  47. user=self.user, default_activity=self.activities[3]
  48. )
  49. clock_in = forms.ClockInForm(user=self.user)
  50. self.assertEquals(clock_in.fields['activity'].initial,
  51. self.activities[3])
  52. add_entry = forms.AddUpdateEntryForm(user=self.user)
  53. self.assertEquals(add_entry.fields['activity'].initial,
  54. self.activities[3])