コード例 #1
0
class TestMissionUpdateView(TestCase):
    def setUp(self):
        self.client = Client()
        self.email = "*****@*****.**"
        self.password = "******"
        self.pleb = create_user_util_test(self.email)
        self.user = User.objects.get(email=self.email)
        self.pleb.email_verified = True
        self.pleb.save()
        self.update = Update().save()
        self.quest = Quest(about='Test Bio',
                           owner_username=self.pleb.username).save()
        self.quest.editors.connect(self.pleb)
        self.quest.moderators.connect(self.pleb)
        cache.clear()
        self.mission = Mission(owner_username=self.pleb.username,
                               title=str(uuid1()),
                               focus_name="advocacy").save()
        self.quest.missions.connect(self.mission)
        self.update.mission.connect(self.mission)
        cache.set(self.pleb.username, self.pleb)

    def test_edit_update(self):
        self.client.login(username=self.user.username, password=self.password)
        url = reverse("mission_edit_update",
                      kwargs={
                          "object_uuid": self.mission.object_uuid,
                          "edit_id": self.update.object_uuid,
                          "slug": slugify(self.mission.get_mission_title())
                      })
        res = self.client.get(url)
        self.assertEqual(res.status_code, status.HTTP_200_OK)

    def test_edit_update_doesnt_exist(self):
        self.client.login(username=self.user.username, password=self.password)
        url = reverse("mission_edit_update",
                      kwargs={
                          "object_uuid": self.mission.object_uuid,
                          "edit_id": self.update.object_uuid,
                          "slug": slugify(self.mission.get_mission_title())
                      })
        res = self.client.get(url)
        self.assertEqual(res.status_code, status.HTTP_200_OK)
コード例 #2
0
class TestMission(TestCase):
    def setUp(self):
        self.email = "*****@*****.**"
        create_user_util_test(self.email)
        self.owner = Pleb.nodes.get(email=self.email)
        self.quest = Quest(owner_username=self.owner.username,
                           object_uuid=str(uuid1())).save()
        self.quest.owner.connect(self.owner)
        self.mission = Mission(owner_username=self.owner.username,
                               title=str(uuid1())).save()
        self.quest.missions.connect(self.mission)

    def test_get_not_cached(self):
        cache.clear()
        res = Mission.get(self.mission.object_uuid)
        self.assertEqual(res.object_uuid, self.mission.object_uuid)

    def test_get_cached(self):
        cache.set("%s_mission" % self.mission.object_uuid, self.mission)
        res = Mission.get(self.mission.object_uuid)
        self.assertEqual(res.object_uuid, self.mission.object_uuid)

    def test_get_dne(self):
        try:
            Mission.get(str(uuid1()))
        except DoesNotExist:
            # this is the best way to test this, maybe?
            self.assertTrue(True)

    def test_get_quest(self):
        res = Mission.get_quest(self.mission.object_uuid)
        self.assertEqual(res.owner_username, self.quest.owner_username)

    def test_get_focus_on_position(self):
        position = Position().save()
        self.mission.position.connect(position)
        res = self.mission.get_focused_on()
        self.assertEqual(position.object_uuid, res['id'])

    def test_get_focus_on_tag(self):
        tag = Tag(name=str(uuid1())).save()
        self.mission.tag.connect(tag)
        res = self.mission.get_focused_on()
        self.assertIn(tag.object_uuid, res['id'])

    def test_get_focus_on_question(self):
        question = Question(title=str(uuid1())).save()
        self.mission.question.connect(question)
        res = self.mission.get_focused_on()
        self.assertIn(question.object_uuid, res['id'])

    def test_get_location(self):
        location = Location().save()
        self.mission.location.connect(location)
        res = self.mission.get_location()
        self.assertEqual(res.object_uuid, location.object_uuid)

    def test_get_editors(self):
        self.quest.editors.connect(self.owner)
        cache.clear()
        res = Mission.get_editors(self.mission.owner_username)
        self.assertIn(self.owner.username, res)

    def test_get_moderators(self):
        self.quest.moderators.connect(self.owner)
        cache.clear()
        res = Mission.get_moderators(self.mission.owner_username)
        self.assertIn(self.owner.username, res)

    def test_get_donations(self):
        donation = Donation(amount=500).save()
        donation.mission.connect(self.mission)
        res = Mission.get_donations(self.mission.object_uuid)
        self.assertEqual(res[0].object_uuid, donation.object_uuid)

    def test_get_donors(self):
        donation = Donation(amount=500,
                            completed=True,
                            owner_username=self.owner.username).save()
        donation.owned_by.connect(self.owner)
        donation.mission.connect(self.mission)
        cache.clear()
        res = Mission.get_donors(self.mission.object_uuid)
        self.assertEqual(res[0], self.owner.username)

    def test_get_donors_order(self):
        order = Order(completed=True,
                      owner_username=self.owner.username).save()
        order.mission.connect(self.mission)
        cache.clear()
        res = Mission.get_donors(self.mission.object_uuid)
        self.assertEqual(res[0], self.owner.username)

    def test_get_mission_title(self):
        res = self.mission.get_mission_title()
        self.assertEqual(res, self.mission.title)

    def test_get_mission_title_no_title(self):
        self.mission.title = ""
        self.focus_name = "Some test stuff"
        self.mission.save()
        res = self.mission.get_mission_title()
        self.assertIsNone(res)

    def test_get_total_donation_amount(self):
        donation1 = Donation(amount=100).save()
        donation2 = Donation(amount=200).save()
        donation1.mission.connect(self.mission)
        donation2.mission.connect(self.mission)
        res = self.mission.get_total_donation_amount()
        self.assertEqual(res, "2.25")

    def test_endorse_pleb(self):
        res = Mission.endorse(self.mission.object_uuid, self.owner.username,
                              "profile")
        self.assertTrue(res)

    def test_endorse_quest(self):
        res = Mission.endorse(self.mission.object_uuid, self.owner.username)
        self.assertTrue(res)

    def test_unendorse_pleb(self):
        res = Mission.endorse(self.mission.object_uuid, self.owner.username,
                              "profile")
        self.assertTrue(res)
        res = Mission.unendorse(self.mission.object_uuid, self.owner.username,
                                "profile")
        self.assertTrue(res)

    def test_unendorse_quest(self):
        res = Mission.endorse(self.mission.object_uuid, self.owner.username)
        self.assertTrue(res)
        res = Mission.unendorse(self.mission.object_uuid, self.owner.username)
        self.assertTrue(res)

    def test_get_average_donation_amount(self):
        donation = Donation(amount=500).save()
        donation.mission.connect(self.mission)
        donation2 = Donation(amount=2500).save()
        donation2.mission.connect(self.mission)
        res = self.mission.get_average_donation_amount()
        self.assertEqual(res, "15.00")

    def test_get_average_donation_amount_cached(self):
        cache.set("%s_average_donation_amount" % self.mission.object_uuid,
                  "15.00")
        res = self.mission.get_average_donation_amount()
        self.assertEqual(res, "15.00")

    def test_get_average_donation_amount_no_donations(self):
        res = self.mission.get_average_donation_amount()
        self.assertEqual(res, "0.00")
コード例 #3
0
class ContributionViewTests(TestCase):
    def setUp(self):
        self.factory = APIRequestFactory()
        self.client = Client()
        self.email = "*****@*****.**"
        self.password = "******"
        self.pleb = create_user_util_test(self.email)
        self.user = User.objects.get(email=self.email)
        self.email2 = "*****@*****.**"
        self.pleb2 = create_user_util_test(self.email2)
        self.user2 = User.objects.get(email=self.email2)
        self.pleb.email_verified = True
        self.pleb.save()
        cache.clear()
        self.mission = Mission(owner_username=self.user.username,
                               title=str(uuid1())).save()
        self.quest = Quest(owner_username=self.pleb.username).save()
        self.quest2 = Quest(owner_username=self.pleb2.username).save()
        self.quest.missions.connect(self.mission)
        self.quest.owner.connect(self.pleb)

    def test_contribution_mission_get(self):
        self.client.login(username=self.user.username, password=self.password)
        url = reverse('mission_donation_amount',
                      kwargs={
                          'object_uuid': self.mission.object_uuid,
                          'slug': slugify(self.mission.get_mission_title())
                      })
        res = self.client.get(url)
        self.assertEqual(res.status_code, status.HTTP_200_OK)

    def test_contribution_mission_get_dne(self):
        self.client.login(username=self.user.username, password=self.password)
        url = reverse('mission_donation_amount',
                      kwargs={
                          'object_uuid': str(uuid1()),
                          'slug': "what_what"
                      })
        res = self.client.get(url)
        self.assertEqual(res.status_code, status.HTTP_302_FOUND)

    def test_contribution_quest_get(self):
        self.client.login(username=self.user.username, password=self.password)
        url = reverse('volunteer_choose',
                      kwargs={'username': self.quest.owner_username})
        res = self.client.get(url)
        self.assertEqual(res.status_code, status.HTTP_200_OK)

    def test_contribution_quest_get_dne(self):
        self.client.login(username=self.user.username, password=self.password)
        url = reverse('volunteer_choose', kwargs={'username': "******"})
        res = self.client.get(url)
        self.assertEqual(res.status_code, status.HTTP_302_FOUND)

    def test_contribution_quest_no_mission(self):
        self.client.login(username=self.user.username, password=self.password)
        url = reverse('volunteer_choose',
                      kwargs={'username': self.quest2.owner_username})
        res = self.client.get(url)
        self.assertEqual(res.status_code, status.HTTP_200_OK)

    def test_volunteer_option_not_authenticated(self):
        url = reverse('mission_volunteer_option',
                      kwargs={
                          'object_uuid': self.mission.object_uuid,
                          'slug': slugify(self.mission.get_mission_title())
                      })
        res = self.client.get(url)
        self.assertEqual(res.status_code, status.HTTP_302_FOUND)

    def test_volunteer_signup_authenticated(self):
        self.client.login(username=self.user.username, password=self.password)
        url = reverse('mission_volunteer_name',
                      kwargs={
                          'object_uuid': self.mission.object_uuid,
                          'slug': slugify(self.mission.get_mission_title())
                      })
        res = self.client.get(url)
        self.assertEqual(res.status_code, status.HTTP_302_FOUND)

    def test_donate_signup_authenticated(self):
        self.client.login(username=self.user.username, password=self.password)
        url = reverse('mission_donation_name',
                      kwargs={
                          'object_uuid': self.mission.object_uuid,
                          'slug': slugify(self.mission.get_mission_title())
                      })
        res = self.client.get(url)
        self.assertEqual(res.status_code, status.HTTP_302_FOUND)

    def test_donate_payment_unauthenticated(self):
        url = reverse('mission_donation_payment',
                      kwargs={
                          'object_uuid': self.mission.object_uuid,
                          'slug': slugify(self.mission.get_mission_title())
                      })
        res = self.client.get(url)
        self.assertEqual(res.status_code, status.HTTP_302_FOUND)
コード例 #4
0
class MissionViewTests(TestCase):
    def setUp(self):
        db.cypher_query('MATCH (a) OPTIONAL MATCH (a)-[r]-() DELETE a, r')
        self.factory = APIRequestFactory()
        self.client = Client()
        self.email = "*****@*****.**"
        self.password = "******"
        create_user_util_test(self.email)
        self.pleb = Pleb.nodes.get(email=self.email)
        self.user = User.objects.get(email=self.email)
        self.pleb.email_verified = True
        self.pleb.save()
        cache.clear()
        self.mission = Mission(owner_username=self.user.username,
                               title=str(uuid1())).save()
        self.quest = Quest(owner_username=self.pleb.username).save()
        self.quest.missions.connect(self.mission)
        self.quest.owner.connect(self.pleb)

    def test_mission_list(self):
        self.client.login(username=self.user.username, password=self.password)
        url = reverse('mission_list')
        res = self.client.get(url)
        self.assertEqual(res.status_code, status.HTTP_200_OK)

    def test_mission_selector(self):
        self.client.login(username=self.user.username, password=self.password)
        url = reverse('select_mission')
        res = self.client.get(url)
        self.assertEqual(res.status_code, status.HTTP_200_OK)

    def test_public_office(self):
        self.client.login(username=self.user.username, password=self.password)
        url = reverse('public_office')
        res = self.client.get(url)
        self.assertEqual(res.status_code, status.HTTP_200_OK)

    def test_advocate_mission(self):
        self.client.login(username=self.user.username, password=self.password)
        url = reverse('advocate')
        res = self.client.get(url)
        self.assertEqual(res.status_code, status.HTTP_200_OK)

    def test_account_setup(self):
        self.client.login(username=self.user.username, password=self.password)
        url = reverse('account_setup')
        res = self.client.get(url)
        self.assertEqual(res.status_code, status.HTTP_200_OK)

    def test_account_setup_not_logged_in(self):
        url = reverse('account_setup')
        res = self.client.get(url)
        self.assertEqual(res.status_code, status.HTTP_302_FOUND)

    def test_account_setup_no_quest(self):
        db.cypher_query('MATCH (a) OPTIONAL MATCH (a)-[r]-() DELETE a, r')
        self.client.login(username=self.user.username, password=self.password)
        url = reverse('account_setup')
        res = self.client.get(url)
        self.assertEqual(res.status_code, status.HTTP_302_FOUND)

    def test_mission_redirect(self):
        self.client.login(username=self.user.username, password=self.password)
        url = reverse('mission_redirect',
                      kwargs={'object_uuid': self.mission.object_uuid})
        res = self.client.get(url)
        self.assertEqual(res.status_code, status.HTTP_301_MOVED_PERMANENTLY)

    def test_mission_redirect_dne(self):
        self.client.login(username=self.user.username, password=self.password)
        url = reverse('mission_redirect', kwargs={'object_uuid': str(uuid1())})
        res = self.client.get(url)
        self.assertEqual(res.status_code, status.HTTP_302_FOUND)

    def test_mission(self):
        self.client.login(username=self.user.username, password=self.password)
        url = reverse('mission',
                      kwargs={
                          'object_uuid': self.mission.object_uuid,
                          'slug': self.mission.get_mission_title()
                      })
        res = self.client.get(url)
        self.assertEqual(res.status_code, status.HTTP_200_OK)

    def test_mission_dne(self):
        self.client.login(username=self.user.username, password=self.password)
        url = reverse('mission',
                      kwargs={
                          'object_uuid': str(uuid1()),
                          'slug': str(uuid1())
                      })
        res = self.client.get(url)
        self.assertEqual(res.status_code, status.HTTP_302_FOUND)

    def test_mission_updates(self):
        self.client.login(username=self.user.username, password=self.password)
        url = reverse('mission_updates',
                      kwargs={
                          'object_uuid': self.mission.object_uuid,
                          'slug': self.mission.get_mission_title()
                      })
        update = Update(title=str(uuid1())).save()
        update.mission.connect(self.mission)
        res = self.client.get(url)
        self.assertEqual(res.status_code, status.HTTP_200_OK)

    def test_mission_updates_dne(self):
        self.client.login(username=self.user.username, password=self.password)
        url = reverse('mission_updates',
                      kwargs={
                          'object_uuid': str(uuid1()),
                          'slug': str(uuid1())
                      })
        update = Update(title=str(uuid1())).save()
        update.mission.connect(self.mission)
        res = self.client.get(url)
        self.assertEqual(res.status_code, status.HTTP_302_FOUND)

    def test_mission_updates_no_updates(self):
        self.client.login(username=self.user.username, password=self.password)
        url = reverse('mission_updates',
                      kwargs={
                          'object_uuid': self.mission.object_uuid,
                          'slug': self.mission.get_mission_title()
                      })
        res = self.client.get(url)
        self.assertEqual(res.status_code, status.HTTP_200_OK)

    def test_mission_updates_no_quest(self):
        self.client.login(username=self.user.username, password=self.password)
        url = reverse('mission_updates',
                      kwargs={
                          'object_uuid': self.mission.object_uuid,
                          'slug': self.mission.get_mission_title()
                      })
        update = Update(title=str(uuid1())).save()
        update.mission.connect(self.mission)
        self.quest.missions.disconnect(self.mission)
        res = self.client.get(url)
        self.assertEqual(res.status_code, status.HTTP_302_FOUND)

    def test_mission_settings_redirect(self):
        self.client.login(username=self.user.username, password=self.password)
        url = reverse('mission_settings_redirect')
        res = self.client.get(url)
        self.assertEqual(res.status_code, status.HTTP_302_FOUND)

    def test_mission_settings(self):
        self.client.login(username=self.user.username, password=self.password)
        url = reverse('mission_settings',
                      kwargs={
                          'object_uuid': self.mission.object_uuid,
                          'slug': self.mission.get_mission_title()
                      })
        res = self.client.get(url)
        self.assertEqual(res.status_code, status.HTTP_200_OK)

    def test_mission_settings_completed_wallpaper(self):
        self.quest.wallpaper_pic = "helloworld.png"
        self.quest.save()
        setup_onboarding(self.quest, self.mission)
        self.client.login(username=self.user.username, password=self.password)
        url = reverse('mission_settings',
                      kwargs={
                          'object_uuid': self.mission.object_uuid,
                          'slug': self.mission.get_mission_title()
                      })
        res = self.client.get(url)
        self.assertEqual(res.status_code, status.HTTP_200_OK)

    def test_mission_settings_completed_verification(self):
        self.quest.account_verified = "verified"
        self.quest.save()
        setup_onboarding(self.quest, self.mission)
        self.client.login(username=self.user.username, password=self.password)
        url = reverse('mission_settings',
                      kwargs={
                          'object_uuid': self.mission.object_uuid,
                          'slug': self.mission.get_mission_title()
                      })
        res = self.client.get(url)
        self.assertEqual(res.status_code, status.HTTP_200_OK)

    def test_mission_settings_completed_about(self):
        self.quest.about = "some short summary"
        self.quest.save()
        setup_onboarding(self.quest, self.mission)
        self.client.login(username=self.user.username, password=self.password)
        url = reverse('mission_settings',
                      kwargs={
                          'object_uuid': self.mission.object_uuid,
                          'slug': self.mission.get_mission_title()
                      })
        res = self.client.get(url)
        self.assertEqual(res.status_code, status.HTTP_200_OK)

    def test_endorse(self):
        self.client.login(username=self.user.username, password=self.password)
        url = reverse('mission_endorse',
                      kwargs={
                          'object_uuid': self.mission.object_uuid,
                          'slug': self.mission.get_mission_title()
                      })
        res = self.client.get(url)
        self.assertEqual(res.status_code, status.HTTP_200_OK)

    def test_endorse_unauthorized(self):
        url = reverse('mission_endorse',
                      kwargs={
                          'object_uuid': self.mission.object_uuid,
                          'slug': self.mission.get_mission_title()
                      })
        res = self.client.get(url)
        self.assertEqual(res.status_code, status.HTTP_302_FOUND)

    def test_endorsements(self):
        self.client.login(username=self.user.username, password=self.password)
        url = reverse('mission_endorsements',
                      kwargs={
                          'object_uuid': self.mission.object_uuid,
                          'slug': self.mission.get_mission_title()
                      })
        res = self.client.get(url)
        self.assertEqual(res.status_code, status.HTTP_200_OK)

    def test_endorsements_unauthorized(self):
        url = reverse('mission_endorsements',
                      kwargs={
                          'object_uuid': self.mission.object_uuid,
                          'slug': self.mission.get_mission_title()
                      })
        res = self.client.get(url)
        self.assertEqual(res.status_code, status.HTTP_200_OK)

    def test_conversations(self):
        self.client.login(username=self.user.username, password=self.password)
        url = reverse('mission_conversations',
                      kwargs={
                          'object_uuid': self.mission.object_uuid,
                          'slug': self.mission.get_mission_title()
                      })
        res = self.client.get(url)
        self.assertEqual(res.status_code, status.HTTP_200_OK)

    def test_conversations_does_not_exist(self):
        self.client.login(username=self.user.username, password=self.password)
        url = reverse('mission_conversations',
                      kwargs={
                          'object_uuid': str(uuid1()),
                          'slug': str(uuid1())
                      })
        res = self.client.get(url)
        self.assertEqual(res.status_code, status.HTTP_302_FOUND)