コード例 #1
0
    def setUp(self):
        self.op_name = 'updateGroceries'
        self.query_under_test = \
            f'''
            mutation {self.op_name}($input: [GroceryUpdateInput!]!) {{
                {self.op_name}(input: $input) {{
                    groceries {{
                        id
                        name
                        info
                        inCart
                    }}
                }}
            }}            '''

        self.current_user_credentials = {
            'email': '*****@*****.**',
            'password': '******'
        }
        self.current_user = self.current_user = create_user(
            group=create_group(), **self.current_user_credentials)

        self.existing_grocery = create_grocery(group=self.current_user.group)

        self.login(self.current_user_credentials.get('email'),
                   self.current_user_credentials.get('password'))
コード例 #2
0
    def test_should_return_expected_results(self):
        existing_groceries = [
            create_grocery(group=self.current_user.group,
                           name='grocery1',
                           info='info1',
                           in_cart=False),
            create_grocery(group=self.current_user.group,
                           name='grocery2',
                           info='info2',
                           in_cart=True),
            create_grocery(group=self.current_user.group,
                           name='grocery3',
                           info='info3',
                           in_cart=False),
        ]
        response = self.gql(self.query_under_test,
                            op_name=self.op_name,
                            variables=dict(input=list(
                                map(
                                    lambda g: dict(id=g.id,
                                                   name=f'{g.name}_updated',
                                                   info=f'{g.info}_updated',
                                                   inCart=not g.in_cart),
                                    existing_groceries))))

        self.assertResponseNoErrors(response)

        groceries: dict = json.loads(response.content).get('data').get(
            self.op_name).get('groceries')

        self.assertIsNotNone(groceries)
        self.assertEqual(len(groceries), 3)
        expected = list(
            map(
                lambda g: dict(id=str(g.id),
                               name=f'{g.name}_updated',
                               info=f'{g.info}_updated',
                               inCart=not g.in_cart), existing_groceries))
        self.assertCountEqual(groceries, expected)
        for grocery in existing_groceries:
            grocery.refresh_from_db()
            g = next(gr for gr in expected if gr.get('id') == str(grocery.id))
            self.assertEqual(g.get('name'), grocery.name)
            self.assertEqual(g.get('info'), grocery.info)
            self.assertEqual(g.get('inCart'), grocery.in_cart)
コード例 #3
0
    def test_should_return_expected_results(self):
        existing_grocery = create_grocery(group=self.current_user.group,
                                          name='name to update',
                                          info='Info to update',
                                          in_cart=False)
        response = self.gql(self.query_under_test,
                            op_name=self.op_name,
                            variables=dict(input=dict(id=existing_grocery.id,
                                                      name='updated name',
                                                      info='updated info',
                                                      inCart=True)))

        self.assertResponseNoErrors(response)

        grocery: dict = json.loads(response.content).get('data').get(
            self.op_name).get('grocery')

        self.assertIsNotNone(grocery)
        self.assertEqual(grocery.get('id'), str(existing_grocery.id))
        self.assertEqual(grocery.get('name'), 'updated name')
        self.assertEqual(grocery.get('info'), 'updated info')
        self.assertEqual(grocery.get('inCart'), True)
コード例 #4
0
    def test_should_return_expected_results(self):
        group_1 = create_group()

        # ok
        grocery_1 = create_grocery(
            group=self.current_user.group,
            in_cart=False,
        )

        # wrong group
        grocery_2 = create_grocery(
            group=group_1,
            in_cart=False,
        )

        # ok
        grocery_3 = create_grocery(
            group=self.current_user.group,
            in_cart=False,
        )

        # wrong in_cart
        grocery_4 = create_grocery(
            group=group_1,
            in_cart=True,
        )

        # ok
        grocery_5 = create_grocery(
            group=self.current_user.group,
            in_cart=False,
        )

        # wrong group
        grocery_6 = create_grocery(
            group=group_1,
            in_cart=False,
        )

        # ok
        grocery_7 = create_grocery(
            group=self.current_user.group,
            in_cart=False,
        )

        # wrong in_cart
        grocery_8 = create_grocery(
            group=group_1,
            in_cart=True,
        )

        response = self.gql(self.query_under_test, op_name=self.op_name)

        self.assertResponseNoErrors(response)

        groceries: dict = json.loads(response.content).get('data').get(
            self.op_name)

        self.assertIsNotNone(groceries)
        self.assertEquals(4, len(groceries))
        self.assertCountEqual(list(map(lambda g: int(g.get('id')), groceries)),
                              [
                                  grocery_1.id,
                                  grocery_3.id,
                                  grocery_5.id,
                                  grocery_7.id,
                              ])