예제 #1
0
    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())
예제 #2
0
    def test_Sponsor_read(self):
        """
        Tests Sponsor model read
        """
        model = SponsorF.create(name=u'Custom Sponsor')

        self.assertTrue(model.name == 'Custom Sponsor')
예제 #3
0
    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
        })
예제 #4
0
    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()
예제 #6
0
    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)
예제 #7
0
    def test_Sponsor_read(self):
        """
        Tests Sponsor model read
        """
        model = SponsorF.create(
            name=u'Custom Sponsor'
        )

        self.assertTrue(model.name == 'Custom Sponsor')
예제 #8
0
    def test_Sponsor_delete(self):
        """
        Tests Sponsor model delete
        """
        model = SponsorF.create()

        model.delete()

        # check if deleted
        self.assertTrue(model.pk is None)
예제 #9
0
    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)
예제 #10
0
    def test_Sponsor_delete(self):
        """
        Tests Sponsor model delete
        """
        model = SponsorF.create()

        model.delete()

        # check if deleted
        self.assertTrue(model.pk is None)
예제 #11
0
    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)
예제 #12
0
    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)
예제 #13
0
    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
        }))
예제 #14
0
    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)
예제 #16
0
    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)
예제 #17
0
    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)
예제 #18
0
    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)
예제 #19
0
    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)
예제 #20
0
    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
        })
예제 #21
0
    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
        })