def setUp(self): """ Setup before each test We force the locale to en otherwise it will use the locale of the host running the tests and we will get unpredictable results / 404s """ self.client = Client() self.client.post('/set_language/', data={'language': 'en'}) logging.disable(logging.CRITICAL) self.user = UserF.create(**{ 'username': '******', 'password': '******', 'is_staff': True }) self.user.set_password('password') self.user.save() self.project = ProjectF.create(name='testproject') self.sponsorship_level = SponsorshipLevelF.create(project=self.project, name='Gold') # Current sponsor self.current_sponsor = SponsorF.create(project=self.project, name='Current Sponsor') self.current_sponsorship_period = SponsorshipPeriodF.create( sponsor=self.current_sponsor, sponsorship_level=self.sponsorship_level, project=self.project, approved=True, start_date=datetime.datetime.now() - datetime.timedelta(days=180), end_date=(datetime.datetime.now() + datetime.timedelta(days=365)).date(), ) # Past sponsor under a certain time limit, in this case 1 year self.past_sponsor = SponsorF.create(project=self.project, name='Past Sponsor') self.past_sponsorship_period = SponsorshipPeriodF.create( sponsor=self.past_sponsor, sponsorship_level=self.sponsorship_level, project=self.project, approved=True, start_date=datetime.datetime.now() - datetime.timedelta(days=180), end_date=(datetime.datetime.now() - datetime.timedelta(days=30)).date()) # It's a very old sponsor that will not be shown self.one_decade_ago_sponsor = SponsorF.create( project=self.project, name='One Decade Ago Sponsor') self.one_decade_ago_sponsorship_period = SponsorshipPeriodF.create( sponsor=self.one_decade_ago_sponsor, sponsorship_level=self.sponsorship_level, project=self.project, approved=True, start_date=datetime.datetime.now() - datetime.timedelta(days=4000), end_date=(datetime.datetime.now() - datetime.timedelta(days=3650)).date())
def test_Sponsor_read(self): """ Tests Sponsor model read """ model = SponsorF.create(name=u'Custom Sponsor') self.assertTrue(model.name == 'Custom Sponsor')
def setUp(self): """ Setup before each test We force the locale to en otherwise it will use the locale of the host running the tests and we will get unpredictable results / 404s """ self.client = Client() self.client.post( '/set_language/', data={'language': 'en'}) logging.disable(logging.CRITICAL) self.project = ProjectF.create( name='testproject') self.sponsor = SponsorF.create( project=self.project, name='Kartoza') self.sponsorship_level = SponsorshipLevelF.create( project=self.project, name='Gold') self.sponsorship_period = SponsorshipPeriodF.create( sponsor=self.sponsor, sponsorship_level=self.sponsorship_level, approved=True) self.user = UserF.create(**{ 'username': '******', 'password': '******', 'is_staff': True })
def setUp(self): """ Setup before each test We force the locale to en otherwise it will use the locale of the host running the tests and we will get unpredictable results / 404s """ self.client = Client() self.client.post('/set_language/', data={'language': 'en'}) logging.disable(logging.CRITICAL) self.project = ProjectF.create(name='testproject') self.sponsor = SponsorF.create(project=self.project, name='Kartoza') self.sponsorship_level = SponsorshipLevelF.create(project=self.project, name='Gold') self.sponsorship_period = SponsorshipPeriodF.create( sponsor=self.sponsor, sponsorship_level=self.sponsorship_level, approved=True) self.user = UserF.create(**{ 'username': '******', 'password': '******', 'is_staff': True })
def setUp(self): """ Setup before each test We force the locale to en otherwise it will use the locale of the host running the tests and we will get unpredictable results / 404s """ self.client = Client() self.client.post( '/set_language/', data={'language': 'en'}) logging.disable(logging.CRITICAL) self.project = ProjectF.create() self.sponsor = SponsorF.create(project=self.project) self.user = UserF.create(**{ 'username': '******', 'password': '******', 'is_staff': True }) self.user2 = UserF.create(**{ 'username': '******', 'password': '******', 'is_staff': False }) # Something changed in the way factoryboy works with django 1.8 # I think - we need to explicitly set the users password # because the core.model_factories.UserF._prepare method # which sets the password is never called. Next two lines are # a work around for that - sett #581 self.user.set_password('password') self.user.save() self.user2.set_password('password') self.user2.save()
def test_SponsorDelete_no_login(self): sponsor_to_delete = SponsorF.create() response = self.client.post(reverse('sponsor-delete', kwargs={ 'slug': sponsor_to_delete.slug, 'project_slug': self.sponsor.project.slug })) self.assertEqual(response.status_code, 302)
def test_Sponsor_read(self): """ Tests Sponsor model read """ model = SponsorF.create( name=u'Custom Sponsor' ) self.assertTrue(model.name == 'Custom Sponsor')
def test_Sponsor_delete(self): """ Tests Sponsor model delete """ model = SponsorF.create() model.delete() # check if deleted self.assertTrue(model.pk is None)
def test_SponsorDelete_no_login(self): sponsor_to_delete = SponsorF.create() response = self.client.post( reverse('sponsor-delete', kwargs={ 'slug': sponsor_to_delete.slug, 'project_slug': self.sponsor.project.slug })) self.assertEqual(response.status_code, 302)
def test_Sponsor_create(self): """ Tests Sponsor model creation """ model = SponsorF.create() # check if PK exists self.assertTrue(model.pk is not None) # check if name exists self.assertTrue(model.name is not None)
def test_SponsorDelete_with_login(self): sponsor_to_delete = SponsorF.create(project=self.project) self.client.login(username='******', password='******') response = self.client.post(reverse('sponsor-delete', kwargs={ 'slug': sponsor_to_delete.slug, 'project_slug': sponsor_to_delete.project.slug }), {}) self.assertRedirects(response, reverse('sponsor-list', kwargs={ 'project_slug': self.project.slug }))
def test_SponsorDelete_with_login(self): sponsor_to_delete = SponsorF.create(project=self.project) self.client.login(username='******', password='******') response = self.client.post( reverse('sponsor-delete', kwargs={ 'slug': sponsor_to_delete.slug, 'project_slug': sponsor_to_delete.project.slug }), {}) self.assertRedirects( response, reverse('sponsor-list', kwargs={'project_slug': self.project.slug}))
def setUp(self): """ Setup before each test """ self.user = UserF.create(**{ 'username': '******', 'password': '******', 'is_staff': False }) self.user.set_password('password') self.user.save() self.project = ProjectF.create() self.sustaining_member = SponsorF.create(project=self.project, author=self.user)
def test_sponsors(self): """ Tests version sponsors """ project = ProjectF.create() data = { 'name': u'New Project Name', 'description': u'New description', 'approved': True, 'private': False, 'slug': u'new-project-slug' } project.__dict__.update(data) project.save() version_model = VersionF.create() data = { '10002001': u'10002001', 'description': u'New description', 'approved': True, 'release_date': u'2016-01-10', 'project': project } version_model.__dict__.update(data) version_model.save() sponsor = SponsorF.create() data = { 'name': u'Foo Sponsor', 'project': project } sponsor.__dict__.update(data) sponsor.save() sponsorship_period = SponsorshipPeriodF.create() data = { 'start_date': u'2016-01-01', 'end_date': u'2016-02-01', 'approved': True, 'private': False, 'project': project, 'sponsor': sponsor } sponsorship_period.__dict__.update(data) sponsorship_period.save() sponsors = version_model.sponsors() self.assertEqual(sponsors.count(), 1)
def test_Sponsor_update(self): """ Tests Sponsor model update """ model = SponsorF.create() new_model_data = { 'name': u'New Sponsor Name', 'sponsor_url': u'New Sponsor URL', 'approved': False, 'private': True, } model.__dict__.update(new_model_data) model.save() # check if updated for key, val in new_model_data.items(): self.assertEqual(model.__dict__.get(key), val)
def test_sponsors(self): """ Tests version sponsors """ project = ProjectF.create() data = { 'name': u'New Project Name', 'description': u'New description', 'approved': True, 'private': False, 'slug': u'new-project-slug' } project.__dict__.update(data) project.save() version_model = VersionF.create() data = { '10002001': u'10002001', 'description': u'New description', 'approved': True, 'release_date': u'2016-01-10', 'project': project } version_model.__dict__.update(data) version_model.save() sponsor = SponsorF.create() data = {'name': u'Foo Sponsor', 'project': project} sponsor.__dict__.update(data) sponsor.save() sponsorship_period = SponsorshipPeriodF.create() data = { 'start_date': u'2016-01-01', 'end_date': u'2016-02-01', 'approved': True, 'private': False, 'project': project, 'sponsor': sponsor } sponsorship_period.__dict__.update(data) sponsorship_period.save() sponsors = version_model.sponsors() self.assertEqual(sponsors.count(), 1)
def setUp(self): """ Setup before each test We force the locale to en otherwise it will use the locale of the host running the tests and we will get unpredictable results / 404s """ self.client = Client() self.client.post('/set_language/', data={'language': 'en'}) logging.disable(logging.CRITICAL) self.project = ProjectF.create() self.sponsor = SponsorF.create(project=self.project) self.user = UserF.create(**{ 'username': '******', 'password': '******', 'is_staff': True })
def setUp(self): """ Setup before each test We force the locale to en otherwise it will use the locale of the host running the tests and we will get unpredictable results / 404s """ self.client = Client() self.client.post( '/set_language/', data={'language': 'en'}) logging.disable(logging.CRITICAL) self.project = ProjectF.create() self.sponsor = SponsorF.create(project=self.project) self.user = UserF.create(**{ 'username': '******', 'password': '******', 'is_staff': True })