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'))
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)
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)
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, ])