Example #1
0
    def test_user_cannot_make_multiple_offers(self):
        query_string, _ = self.generate_query_string(with_amount=True,
                                                     is_negotiable=True)
        user = create_user_from_email('*****@*****.**')
        result1 = execute_request_with_user(query_string, user=user)

        #running the same mutation again
        result2 = execute_request_with_user(query_string, user=user)

        self.assertNotIn('errors', result2)

        data = result2['data']['createOffer']
        self.assertEqual(data['ok'], False)

        errors = data['errors']
        self.assertEqual(errors[0], "You cannot create multiple offers")
Example #2
0
    def test_non_bitsian_cannot_make_new_product(self):
        user = create_user_from_email('*****@*****.**')
        result = execute_request_with_user(self.query_string, user=user)

        self.assertIn('errors', result)

        data = result['data']['createProduct']
        self.assertIsNone(data)
Example #3
0
    def test_user_can_get_products(self):
        user = create_user_from_email('*****@*****.**')
        result = execute_request_with_user(self.query_string, user=user)

        self.assertNotIn('errors', result)

        data = result['data']['products']

        self.assertEqual(len(data["objects"]), 5)
Example #4
0
    def test_bitsian_can_create_product(self):
        user = create_user_from_email('*****@*****.**')
        result = execute_request_with_user(self.query_string, user=user)

        self.assertNotIn('errors', result)

        data = result['data']['createProduct']

        self.assertEqual(data['ok'], True)
Example #5
0
    def test_user_can_offer_for_expected_price(self):
        query_string, _ = self.generate_query_string(with_amount=False,
                                                     is_negotiable=False)
        user = create_user_from_email('*****@*****.**')
        result = execute_request_with_user(query_string, user=user)

        self.assertNotIn('errors', result)

        data = result['data']['createOffer']
        self.assertEqual(data['ok'], True)
Example #6
0
    def test_user_can_get_wishlist(self):
        user = create_user_from_email('*****@*****.**')
        user.profile.wishlist.products.add(self.product)
        result = execute_request_with_user(self.query_string, user=user)

        self.assertNotIn('errors', result)

        data = result['data']['wishlist'][0]

        self.assertEqual(len(data), 2)
Example #7
0
    def test_anonymous_cannot_get_products(self):
        user = AnonymousUser()
        result = execute_request_with_user(self.query_string, user=user)

        self.assertIn('errors', result)

        error = result["errors"][0]

        self.assertEqual(error["message"],
                         "You do not have permission to perform this action")
Example #8
0
    def test_user_can_get_profile_by_email(self):
        user = create_user_from_email('*****@*****.**')
        result = execute_request_with_user(self.query_string,
                                           user=user,
                                           variables={'email': user.email})
        self.assertNotIn('errors', result)

        data = result['data']['profile']

        self.assertEqual(len(data), 3)
Example #9
0
    def test_user_can_get_all_categories(self):
        user = create_user_from_email('*****@*****.**')
        result = execute_request_with_user(self.query_string, user=user)

        self.assertNotIn('errors', result)

        data = result['data']['allCategories']

        self.assertEqual(len(data), 5)
        self.assertEqual(len(data[0]['products']), 1)
Example #10
0
    def test_user_can_get_all_profiles(self):
        user = create_user_from_email('*****@*****.**')
        result = execute_request_with_user(self.query_string, user=user)

        self.assertNotIn('errors', result)

        data = result['data']['allProfiles']

        self.assertEqual(
            len(data), 6
        )  # 6 because a new user was created with function create_user_from_email
Example #11
0
    def test_user_can_get_product_offer(self):
        user = create_user_from_email('*****@*****.**')
        result = execute_request_with_user(self.query_string,
                                           user=user,
                                           variables={'id': self.product.id})

        self.assertNotIn('errors', result)

        data = result['data']['productOffer'][0]

        self.assertEqual(len(data), 4)
Example #12
0
    def test_user_can_get_category(self):
        user = create_user_from_email('*****@*****.**')
        result = execute_request_with_user(
            self.query_string,
            user=user,
            variables={'name': self.categories[0].name})

        self.assertNotIn('errors', result)

        data = result['data']['category']

        self.assertEqual(len(data), 2)
Example #13
0
    def test_anonymous_cannot_get_profile_by_email(self):
        user = AnonymousUser()
        find_user = create_user_from_email('*****@*****.**')
        result = execute_request_with_user(
            self.query_string, user=user, variables={'email': find_user.email})

        self.assertIn('errors', result)

        error = result["errors"][0]

        self.assertEqual(error["message"],
                         "You do not have permission to perform this action")
Example #14
0
    def test_bitsian_can_report_non_bitsian(self):
        user1 = create_user_from_email('*****@*****.**')
        user2 = create_user_from_email('*****@*****.**')

        result = execute_request_with_user(
            self.query_string,
            user=user1,
            variables={"reportedUserName": user2.username})

        self.assertNotIn('errors', result)
        data = result['data']['createUserReport']

        self.assertEqual(data['ok'], True)
Example #15
0
    def test_user_cannot_make_offer_on_their_product(self):
        query_string, user = self.generate_query_string(with_amount=True,
                                                        is_negotiable=True)
        result = execute_request_with_user(query_string, user=user)

        self.assertNotIn('errors', result)

        data = result['data']['createOffer']
        self.assertEqual(data['ok'], False)

        errors = data['errors']
        self.assertEqual(errors[0], "User cannot offer on their own product"
                         )  #Matching the error message returned from mutation.
Example #16
0
    def test_anonymous_cannot_get_category(self):
        user = AnonymousUser()
        result = execute_request_with_user(
            self.query_string,
            user=user,
            variables={'name': self.categories[0].name})

        self.assertIn('errors', result)

        error = result["errors"][0]

        self.assertEqual(error["message"],
                         "You do not have permission to perform this action")
Example #17
0
    def test_user_cannot_make_offer_without_amount(self):
        query_string, _ = self.generate_query_string(with_amount=False,
                                                     is_negotiable=True)
        user = create_user_from_email('*****@*****.**')
        result = execute_request_with_user(query_string, user=user)

        self.assertNotIn('errors', result)

        data = result['data']['createOffer']
        self.assertEqual(data['ok'], False)

        errors = data['errors']
        self.assertEqual(errors[0], "Missing argument 'amount'")
Example #18
0
    def test_upload_single_image(self):
        product, user = create_product_from_email(
            '*****@*****.**', is_negotiable=False)
        result = execute_request_with_user(
            self.query_string,
            user=user,
            variables={"prodId": product.id},
            context={"img1.jpg": tempfile.NamedTemporaryFile(suffix=".jpg")})

        self.assertNotIn('errors', result)

        data = result['data']['uploadImage']

        self.assertEqual(data['ok'], True)
Example #19
0
    def test_number_report_increase(self):
        user1 = create_user_from_email('*****@*****.**')
        user2 = create_user_from_email('*****@*****.**')

        reports = UserReport.objects.count()

        result = execute_request_with_user(
            self.query_string,
            user=user1,
            variables={"reportedUserName": user2.username})

        new_reports = UserReport.objects.count()

        self.assertNotIn('errors', result)
        self.assertEqual(reports + 1, new_reports)
        data = result['data']['createUserReport']

        self.assertEqual(data['ok'], True)
Example #20
0
    def test_user_can_get_my_profile(self):
        user = create_user_from_email('*****@*****.**')
        category = baker.make(Category, _quantity=1)
        users = baker.make(User, _quantity=1)
        product = baker.make(Product,
                             seller=user.profile,
                             category=category[0])
        offer = baker.make(ProductOffer,
                           offerer=users[0].profile,
                           product=product,
                           amount=randint(0, 10000))
        report = baker.make(UserReport,
                            reported_user=user.profile,
                            reported_by=users[0].profile,
                            category=randint(1, 3))

        result = execute_request_with_user(self.query_string, user=user)

        self.assertNotIn('errors', result)

        data = result['data']['myProfile']

        self.assertEqual(len(data), 4)