コード例 #1
0
    def test_followings(self):
        user = factories.UserFactory()
        self.db.session.add(user)

        following = factories.UserFactory()
        user.followings.append(following)
        self.db.session.add(following)

        current_user = factories.UserFactory()
        self.db.session.add(current_user)
        following.followers.append(current_user)

        self.db.session.commit()

        self.set_current_user(current_user)

        response = self.call_target(user_id=user.id)

        res = flask.json.loads(response.data)

        followings = res['followings']
        stats = res['stats']
        self.assertEqual(stats['total_followings'], 1)
        self.assertEqual(len(followings), 1)
        self.assertEqual(followings[0]['user_id'], following.id)
        self.assertEqual(followings[0]['follow_by_current_user'], True)
コード例 #2
0
 def test_send_to_friend(self):
     user_from = factories.UserFactory(silver_points=100, username='******')
     user_to = factories.UserFactory(silver_points=30, username='******')
     self.call_target(
         user_from=user_from.id,
         user_to=user_to.id,
         transaction_type='send_to_friend',
         silver_points=50
     )
     self.assertEqual(
         factories.UserFactory.get(user_from.id),
         factories.UserFactory.build(id=user_from.id, silver_points=50, username='******')
     )
     self.assertEqual(
         factories.UserFactory.get(user_to.id),
         factories.UserFactory.build(id=user_to.id, silver_points=80, username='******')
     )
     tr = factories.Transfer.get()[0]
     self.assertEqual(
         tr,
         factories.Transfer.build(
             id=tr.id,
             user_from=user_from,
             user_to=user_to,
             silver_points=50,
             transaction_type='send_to_friend',
         )
     )
コード例 #3
0
    def test_follow_user(self):
        follower = factories.UserFactory(id="follower")
        self.db.session.add(follower)

        following = factories.UserFactory(id="following")
        following.followers.append(follower)
        self.db.session.add(following)

        self.assertEqual(follower.followings[0].id, following.id)

        self.set_current_user(follower)

        self.db.session.commit()

        result = self.call_target(
            following_id="following"
        )

        # self.assertEqual(result, factories.JsonResponseFactory.build())
        self.assertEqual(result.status, '200 OK')

        follower = factories.UserFactory.get("follower")
        self.assertEqual(len(follower.followings), 0)

        following = factories.UserFactory.get("following")
        self.assertEqual(len(following.followers), 0)
コード例 #4
0
ファイル: test_edit_user.py プロジェクト: skyclean906/python
    def test_basic_info(self):
        user = factories.UserFactory(id='TestUser',
                                     username='******',
                                     first_name='first_name',
                                     last_name='last_name',
                                     bio='bio')
        self.db.session.add(user)
        self.db.session.commit()
        self.set_current_user(user)
        self.user = user
        self.data = dict(username='******',
                         first_name='first_name1',
                         last_name='last_name1',
                         bio='bio1')

        response = self.call_target()

        expected_user = factories.UserFactory.build(id='TestUser',
                                                    username='******',
                                                    first_name='first_name1',
                                                    last_name='last_name1',
                                                    bio='bio1')

        self.assertEqual(factories.UserFactory.get('TestUser'), expected_user)

        self.assertEqual(
            response,
            factories.JsonResponseFactory(
                data=get_base_user_info(expected_user)))
コード例 #5
0
    def test_for_specific_user_true(self):
        from lib.models import card as card_module
        self.creator = User(username='******')

        self.card = factories.CardFactory(type=Card.DECK,
                                          is_ask_mode_enabled=True,
                                          creator=self.creator)

        self.viewer = factories.UserFactory()
        self.card.views.append(self.viewer)
        self.card.comments.append(factories.Comment(user=self.viewer))

        urc = factories.UserRoleCard(card=self.card,
                                     user=self.viewer,
                                     prize=56)

        self.db.session.add(self.card)
        self.db.session.commit()

        self.call_target(by_user=self.viewer)

        self.assertEqual(self.result['views_count'], 1)
        self.assertEqual(self.result['viewed_by_me'], True)
        self.assertEqual(self.result['commented_by_me'], True)
        self.assertEqual(self.result['won_by_me'], True)
コード例 #6
0
 def test_create_ask(self):
     with factories.TransferTypeRepository() as transaction_type_repository:
         transaction_type = transaction_type_repository.create(code='create_ask', silver_points=55)
         user_from = factories.UserFactory(silver_points=100, username='******')
         card_to = factories.DeckFactory(silver_points=0)
         self.call_target(
             user_from=user_from.id,
             card_to=card_to.id,
             transaction_type=transaction_type.code
         )
         self.assertEqual(
             factories.UserFactory.get(user_from.id),
             factories.UserFactory.build(id=user_from.id, silver_points=100 - transaction_type.silver_points, username='******')
         )
         self.assertEqual(
             factories.CardFactory.get(card_to.id),
             factories.CardFactory.build(id=card_to.id, silver_points=0)
         )
         tr = factories.Transfer.get()[0]
         self.assertEqual(
             tr,
             factories.Transfer.build(
                 id=tr.id,
                 user_from=user_from,
                 card_to=card_to,
                 silver_points=transaction_type.silver_points,
                 transaction_type=transaction_type.code,
             )
         )
コード例 #7
0
 def test_basic_info_for_another_user(self):
     user = factories.UserFactory()
     self.db.session.add(user)
     self.db.session.commit()
     self.data['user_id'] = user.id
     response = self.call_target()
     self.assertEqual(response.status, '200 OK')
     data = flask.json.loads(response.data)
     self.assertEqual(data['id'], user.id)
コード例 #8
0
 def test_not_liked_by_user(self):
     user = factories.UserFactory()
     comment = factories.Comment()
     self.db.session.add(user)
     self.db.session.add(comment)
     self.db.session.commit()
     result = comment.to_dict(user)
     self.assertEqual(result['likes'], 0)
     self.assertEqual(result['liked_by_current_user'], False)
コード例 #9
0
 def test_default_fields(self):
     writer = factories.UserFactory()
     comment = factories.Comment(user=writer)
     self.db.session.add(comment)
     self.db.session.commit()
     result = comment.to_dict()
     self.assertEqual(result['likes'], 0)
     self.assertEqual(result['liked_by_current_user'], None)
     self.assertEqual(result['user_id'], writer.id)
コード例 #10
0
    def test_simple_fields(self):
        from lib.models import card as card_module
        self.creator = User(username='******')

        self.card = factories.CardFactory(type=Card.DECK,
                                          is_ask_mode_enabled=True,
                                          creator=self.creator)
        eastern = timezone('US/Eastern')

        self.card.evaluation_period_status = card_module.EVALUATION_PERIOD_STATUS_OPEN
        self.card.distribution_rule = card_module.DISTRIBUTION_RULE_SPLIT_EVENLY
        self.card.distribution_for = 10
        self.card.evaluation_start_dt = datetime(2016,
                                                 11,
                                                 28,
                                                 9,
                                                 51,
                                                 38,
                                                 tzinfo=eastern)
        self.card.evaluation_end_dt = datetime(2016,
                                               11,
                                               29,
                                               9,
                                               51,
                                               38,
                                               tzinfo=eastern)
        self.card.answer_visibility = card_module.ANSWER_VISIBILITY_ONLY_ASKERS
        self.card.scale = 3
        self.card.original_prize_pool = 123
        self.viewer = factories.UserFactory()
        self.card.views.append(self.viewer)

        self.db.session.add(self.card)
        self.db.session.commit()

        self.call_target()
        self.assert_result()

        self.joined_users = [self.creator]

        self.assertEqual(self.result['evaluation_period_status'],
                         card_module.EVALUATION_PERIOD_STATUS_OPEN)
        self.assertEqual(self.result['distribution_rule'],
                         card_module.DISTRIBUTION_RULE_SPLIT_EVENLY)
        self.assertEqual(self.result['distribution_for'], 10)
        self.assertEqual(self.result['evaluation_start_dt'],
                         datetime(2016, 11, 28, 9, 51, 38, tzinfo=eastern))
        self.assertEqual(self.result['evaluation_end_dt'],
                         datetime(2016, 11, 29, 9, 51, 38, tzinfo=eastern))
        self.assertEqual(self.result['answer_visibility'],
                         card_module.ANSWER_VISIBILITY_ONLY_ASKERS)
        self.assertEqual(self.result['creator_info']['user_id'],
                         self.creator.id)
        self.assertEqual(self.result['scale'], 3)
        self.assertEqual(self.result['original_prize_pool'], 123)
        self.assertEqual(self.result['views_count'], 1)
コード例 #11
0
ファイル: test_signup.py プロジェクト: skyclean906/python
    def test_username_exists_exception(self):
        factories.UserFactory(username='******')
        self.db.session.commit()

        result = self.call_target(username="******",
                                  email="*****@*****.**")
        self.assertEqual(
            result,
            factories.JsonResponseFactory.build(
                data={'error': 'username_exists'}))
コード例 #12
0
 def test_liked_by_user(self):
     user = factories.UserFactory()
     comment = factories.Comment()
     comment_like = factories.CommentLike(user=user, comment=comment)
     self.db.session.add(user)
     self.db.session.add(comment)
     self.db.session.add(comment_like)
     self.db.session.commit()
     result = comment.to_dict(user)
     self.assertEqual(result['likes'], 1)
     self.assertEqual(result['liked_by_current_user'], True)
コード例 #13
0
 def test_sponsors(self):
     ask = factories.AskDeckFactory(id="ask_id")
     user = factories.UserFactory()
     self.db.session.commit()
     urc = UserRoleCard(user_id=user.id,
                        role_id=CardRole.JOINED,
                        card_id=ask.id,
                        contribution=16)
     self.db.session.add(urc)
     self.db.session.commit()
     res = ask.to_dict()
     self.assertEqual(len(res['sponsors']), 1)
     self.assertEqual(res['sponsors'][0]['user_id'], user.id)
     self.assertEqual(res['sponsors'][0]['contribution'], 16)
コード例 #14
0
 def test_winners(self):
     ask = factories.AskDeckFactory(id="ask_id")
     user = factories.UserFactory()
     self.db.session.commit()
     urc = UserRoleCard(user_id=user.id,
                        role_id=CardRole.GIVER,
                        card_id=ask.id,
                        prize=15)
     self.db.session.add(urc)
     self.db.session.commit()
     res = ask.to_dict()
     self.assertEqual(len(res['winners']), 1)
     self.assertEqual(res['winners'][0]['user_id'], user.id)
     self.assertEqual(res['winners'][0]['prize'], 15)
コード例 #15
0
    def test_succcess(self):
        user = factories.UserFactory(email='*****@*****.**',
                                     verification_code='12345',
                                     active=False)
        self.db.session.commit()

        result = self.call_target(email="*****@*****.**", code='12345')

        self.assertEqual(result, factories.JsonResponseFactory.build())

        user = factories.UserFactory.get(email="*****@*****.**")

        self.assertEqual(user.active, True)
        self.assertEqual(user.verification_code, '')
コード例 #16
0
    def test_published(self):
        '''Get all card published by user'''
        user = factories.UserFactory()
        self.db.session.add(user)
        card = factories.CardFactory(user_id=user.id, published=True, creator=user)
        self.db.session.add(card)
        self.db.session.commit()

        self.data['fields'] = 'published'
        self.data['user_id'] = user.id
        response = self.call_target()

        self.assertEqual(response.status, '200 OK')
        data = flask.json.loads(response.data)

        cards = data['published']
        self.assertEqual(len(cards), 1)
        self.assertEqual(cards[0]['id'], card.id)
コード例 #17
0
    def test_for_specific_user_false(self):
        from lib.models import card as card_module
        self.creator = User(username='******')
        self.card = factories.CardFactory(type=Card.DECK,
                                          is_ask_mode_enabled=True,
                                          creator=self.creator)
        self.viewer = factories.UserFactory()

        self.db.session.commit()

        self.call_target(by_user=self.viewer)
        self.assert_result()

        self.joined_users = [self.creator]

        self.assertEqual(self.result['views_count'], 0)
        self.assertEqual(self.result['viewed_by_me'], False)
        self.assertEqual(self.result['commented_by_me'], False)
        self.assertEqual(self.result['won_by_me'], False)
コード例 #18
0
 def test_succcess(self):
     card = factories.ImageCardFactory.create(
         name='name1', creator=factories.UserFactory())
     self.db.session.commit()
     result = self.call_target(
         card_id=card.id,
         comment_content='comment_content1',
     )
     card = factories.ImageCardFactory.get(card.id)
     self.assertEqual(len(card.comments), 1)
     comment = card.comments[0]
     self.assertEqual(comment.card, card)
     self.assertEqual(comment.user, self.user)
     self.assertEqual(comment.id, comment.id)
     self.assertEqual(comment.content, 'comment_content1')
     self.assertEqual(
         result,
         factories.JsonResponseWithResultStatusFactory.build(
             extra_data={'comment': comment.to_dict()}))
コード例 #19
0
    def test_success(self):
        user = factories.UserFactory(silver_points=39, gold_points=44)
        card = factories.CardFactory(creator=user, likes=4)
        self.db.session.commit()
        response = self.call_target(user_id=user.id)

        res = flask.json.loads(response.data)

        self.assertEqual(res['user_info']['user_id'], user.id)
        self.assertEqual(len(res['cards']), 1)
        self.assertEqual(res['cards'][0]['id'], card.id)

        stats = res['stats']

        self.assertEqual(stats['total_followers'], 0)
        self.assertEqual(stats['total_followings'], 0)
        self.assertEqual(stats['total_likes'], 4)
        self.assertEqual(stats['total_shared'], 113)
        self.assertEqual(stats['total_points'], {'silver': 39, 'gold': 44})
コード例 #20
0
    def test_likes(self):
        '''Get all card liked by user'''
        card = factories.CardFactory()
        self.db.session.add(card)
        user = factories.UserFactory()
        self.db.session.add(user)
        like = factories.CardLikesFactory(card=card, user=user)
        self.db.session.add(like)
        self.db.session.commit()

        self.data['fields'] = 'likes'
        self.data['user_id'] = user.id
        response = self.call_target()

        self.assertEqual(response.status, '200 OK')
        data = flask.json.loads(response.data)

        cards = data['likes']
        self.assertEqual(len(cards), 1)
        self.assertEqual(cards[0]['id'], card.id)
コード例 #21
0
ファイル: test_fb_signin.py プロジェクト: skyclean906/python
    def test_activate_user_if_was_inactive(self, mfb):
        user = factories.UserFactory(email='*****@*****.**',
                                     verification_code='',
                                     active=False,
                                     password='******')
        self.db.session.commit()
        mfb.return_value = {
            'verified': True,
            'email': '*****@*****.**',
            'thumbnail_url': 'thumbnail_url'
        }

        result = self.call_target(fb_access_token="fb_access_token", )

        self.assertEqual(result.status, '200 OK')

        user = factories.UserFactory.get(email="*****@*****.**")

        self.assertEqual(user.active, True)
        self.assertEqual(user.verification_code, '')
コード例 #22
0
    def setUp(self):
        super(JoinAskTestCase, self).setUp()
        self.user = factories.UserFactory(silver_points=100)
        self.db.session.add(self.user)
        self.set_current_user(self.user)

        # input data
        self.owner = User(username='******')
        self.db.session.add(self.owner)
        self.deck = Card(type=Card.DECK,
                         name='test_deck',
                         creator=self.owner,
                         is_ask_mode_enabled=True,
                         silver_points=0,
                         prize_to_join=10)
        self.db.session.add(self.deck)
        self.db.session.commit()
        self.asker_ids = None
        self.custom_join_prize = None

        self.response = None
コード例 #23
0
 def test_verify_with_facebook(self):
     user_to = factories.UserFactory(silver_points=30, username='******')
     transaction_type = transfer.TYPES['verify_with_facebook']
     self.call_target(
         user_to=user_to.id,
         transaction_type=transaction_type.code
     )
     self.assertEqual(
         factories.UserFactory.get(user_to.id),
         factories.UserFactory.build(id=user_to.id, silver_points=30 + transaction_type.silver_points, username='******')
     )
     tr = factories.Transfer.get()[0]
     self.assertEqual(
         tr,
         factories.Transfer.build(
             id=tr.id,
             user_to=user_to,
             silver_points=transaction_type.silver_points,
             transaction_type=transaction_type.code,
         )
     )
コード例 #24
0
    def test_add_sub_comment(self):
        card = factories.ImageCardFactory.create(
            name='name1', creator=factories.UserFactory())
        self.db.session.add(card)

        comment = factories.Comment(card=card)
        self.db.session.add(comment)

        self.db.session.commit()

        result = self.call_target(
            comment_id=comment.id,
            comment_content='sub_comment',
        )
        self.assertEqual(1, len(comment.sub_comments))
        sub_comment = comment.sub_comments[0]
        self.assertEqual(sub_comment.card, None)
        self.assertEqual(sub_comment.user, self.user)
        self.assertEqual(sub_comment.comment.id, comment.id)
        self.assertEqual(sub_comment.content, 'sub_comment')
        self.assertEqual(
            result,
            factories.JsonResponseWithResultStatusFactory.build(
                extra_data={'comment': sub_comment.to_dict()}))
コード例 #25
0
 def test_points_cannot_be_less_than_0(self):
     try:
         factories.UserFactory(silver_points = -1, gold_points = -1)
         self.fail('Value error shoulb be thrown')
     except ValueError:
         pass