def test_for_valid_relationship_dicts_with_nested_modifications(self, app): # Given offer_dict = {'name': 'foo', 'type': 'bar'} offer = Offer(**offer_dict) ApiHandler.save(offer) stock_dict1 = {'offerId': humanize(offer.id), 'price': 1} stock1 = Stock(**stock_dict1) ApiHandler.save(stock1) stock_dict1['id'] = humanize(stock1.id) stock_dict2 = {'offerId': humanize(offer.id), 'price': 2} stock2 = Stock(**stock_dict2) ApiHandler.save(stock2) stock_dict2['id'] = humanize(stock2.id) stock_dict2['price'] = 3 offer_dict['stocks'] = [stock_dict1, stock_dict2] offer.modify(offer_dict) # When ApiHandler.save(offer) # Then assert offer.name == offer_dict['name'] offer_stock1 = [s for s in offer.stocks if s.id == stock1.id][0] offer_stock2 = [s for s in offer.stocks if s.id == stock2.id][0] assert offer_stock1.id == stock1.id assert offer_stock1.price == stock_dict1['price'] assert offer_stock2.id == stock2.id assert offer_stock2.price == stock_dict2['price']
def test_modify_offer_saves_an_update_activity(self, app): # Given offer_dict = {'name': 'bar', 'type': 'foo'} offer = Offer(**offer_dict) ApiHandler.save(offer) modify_dict = {'name': 'bor'} offer.modify(modify_dict) # When ApiHandler.save(offer) # Then all_activities = Activity.query.all() offer_activities = offer.__activities__ update_offer_activity = offer_activities[1] assert len(all_activities) == 2 assert len(offer_activities) == 2 assert update_offer_activity.entityIdentifier == offer.activityIdentifier assert update_offer_activity.verb == 'update' assert { **offer_dict, **modify_dict }.items() <= update_offer_activity.datum.items() assert modify_dict.items() == update_offer_activity.patch.items() assert offer_dict.items() <= update_offer_activity.oldDatum.items()
def test_for_valid_relationship_dicts(self): # Given test_object = Offer() stock_dict1 = {'price': 1} stock_dict2 = {'price': 1} offer_dict = { 'name': 'foo', 'stocks': [stock_dict1, stock_dict2], 'type': 'bar' } # When test_object.modify(offer_dict) # Then assert test_object.name == offer_dict['name'] assert test_object.stocks[0].price == stock_dict1['price'] assert test_object.stocks[1].price == stock_dict2['price']