def test_order_with_respect_to_multiple(self): hawaiian_pizza = Pizza.objects.create(name="Hawaiian Pizza") napoli_pizza = Pizza.objects.create(name="Napoli") mozarella = Topping.objects.create(name="mozarella") pineapple = Topping.objects.create(name="Pineapple") PizzaToppingsThroughModel.objects.create(pizza=napoli_pizza, topping=mozarella) PizzaToppingsThroughModel.objects.bulk_create([ PizzaToppingsThroughModel(pizza=hawaiian_pizza, topping=mozarella), PizzaToppingsThroughModel(pizza=hawaiian_pizza, topping=pineapple), ]) self.assertSequenceEqual( PizzaToppingsThroughModel.objects.filter( pizza=hawaiian_pizza).values_list("order", flat=True), [0, 1], )
def test_order_with_respect_to(self): hawaiian_pizza = Pizza.objects.create(name="Hawaiian Pizza") napoli_pizza = Pizza.objects.create(name="Napoli") topping = Topping.objects.create(name="mozarella") PizzaToppingsThroughModel.objects.create(pizza=napoli_pizza, topping=topping) PizzaToppingsThroughModel.objects.bulk_create( [PizzaToppingsThroughModel(pizza=hawaiian_pizza, topping=topping)]) self.assertEqual( PizzaToppingsThroughModel.objects.get(pizza=hawaiian_pizza).order, 0)
def setUp(self): self.t1 = Topping.objects.create(name='tomatoe') self.t2 = Topping.objects.create(name='mozarella') self.t3 = Topping.objects.create(name='anchovy') self.t4 = Topping.objects.create(name='mushrooms') self.t5 = Topping.objects.create(name='ham') self.p1 = Pizza.objects.create(name='Napoli') # tomatoe, mozarella, anchovy self.p2 = Pizza.objects.create(name='Regina') # tomatoe, mozarella, mushrooms, ham # Now put the toppings on the pizza self.p1_t1 = PizzaToppingsThroughModel(pizza=self.p1, topping=self.t1) self.p1_t1.save() self.p1_t2 = PizzaToppingsThroughModel(pizza=self.p1, topping=self.t2) self.p1_t2.save() self.p1_t3 = PizzaToppingsThroughModel(pizza=self.p1, topping=self.t3) self.p1_t3.save() self.p2_t1 = PizzaToppingsThroughModel(pizza=self.p2, topping=self.t1) self.p2_t1.save() self.p2_t2 = PizzaToppingsThroughModel(pizza=self.p2, topping=self.t2) self.p2_t2.save() self.p2_t3 = PizzaToppingsThroughModel(pizza=self.p2, topping=self.t4) self.p2_t3.save() self.p2_t4 = PizzaToppingsThroughModel(pizza=self.p2, topping=self.t5) self.p2_t4.save()
def setUp(self): self.t1 = Topping.objects.create(name="tomatoe") self.t2 = Topping.objects.create(name="mozarella") self.t3 = Topping.objects.create(name="anchovy") self.t4 = Topping.objects.create(name="mushrooms") self.t5 = Topping.objects.create(name="ham") self.p1 = Pizza.objects.create( name="Napoli") # tomatoe, mozarella, anchovy self.p2 = Pizza.objects.create( name="Regina") # tomatoe, mozarella, mushrooms, ham # Now put the toppings on the pizza self.p1_t1 = PizzaToppingsThroughModel(pizza=self.p1, topping=self.t1) self.p1_t1.save() self.p1_t2 = PizzaToppingsThroughModel(pizza=self.p1, topping=self.t2) self.p1_t2.save() self.p1_t3 = PizzaToppingsThroughModel(pizza=self.p1, topping=self.t3) self.p1_t3.save() self.p2_t1 = PizzaToppingsThroughModel(pizza=self.p2, topping=self.t1) self.p2_t1.save() self.p2_t2 = PizzaToppingsThroughModel(pizza=self.p2, topping=self.t2) self.p2_t2.save() self.p2_t3 = PizzaToppingsThroughModel(pizza=self.p2, topping=self.t4) self.p2_t3.save() self.p2_t4 = PizzaToppingsThroughModel(pizza=self.p2, topping=self.t5) self.p2_t4.save()
class OrderWithRespectToTestsManyToMany(TestCase): def setUp(self): self.t1 = Topping.objects.create(name="tomatoe") self.t2 = Topping.objects.create(name="mozarella") self.t3 = Topping.objects.create(name="anchovy") self.t4 = Topping.objects.create(name="mushrooms") self.t5 = Topping.objects.create(name="ham") self.p1 = Pizza.objects.create( name="Napoli") # tomatoe, mozarella, anchovy self.p2 = Pizza.objects.create( name="Regina") # tomatoe, mozarella, mushrooms, ham # Now put the toppings on the pizza self.p1_t1 = PizzaToppingsThroughModel(pizza=self.p1, topping=self.t1) self.p1_t1.save() self.p1_t2 = PizzaToppingsThroughModel(pizza=self.p1, topping=self.t2) self.p1_t2.save() self.p1_t3 = PizzaToppingsThroughModel(pizza=self.p1, topping=self.t3) self.p1_t3.save() self.p2_t1 = PizzaToppingsThroughModel(pizza=self.p2, topping=self.t1) self.p2_t1.save() self.p2_t2 = PizzaToppingsThroughModel(pizza=self.p2, topping=self.t2) self.p2_t2.save() self.p2_t3 = PizzaToppingsThroughModel(pizza=self.p2, topping=self.t4) self.p2_t3.save() self.p2_t4 = PizzaToppingsThroughModel(pizza=self.p2, topping=self.t5) self.p2_t4.save() def test_saved_order(self): self.assertSequenceEqual( PizzaToppingsThroughModel.objects.values_list( "topping__pk", "order"), [ (self.p1_t1.topping.pk, 0), (self.p1_t2.topping.pk, 1), (self.p1_t3.topping.pk, 2), (self.p2_t1.topping.pk, 0), (self.p2_t2.topping.pk, 1), (self.p2_t3.topping.pk, 2), (self.p2_t4.topping.pk, 3), ], ) def test_swap(self): with self.assertRaises(ValueError): self.p1_t1.swap(self.p2_t1) def test_previous(self): self.assertEqual(self.p1_t2.previous(), self.p1_t1) def test_previous_first(self): self.assertEqual(self.p2_t1.previous(), None) def test_down(self): self.assertEqual(self.p2_t1.next(), self.p2_t2) def test_down_last(self): self.assertEqual(self.p1_t3.next(), None) def test_up(self): self.p1_t2.up() self.assertSequenceEqual( PizzaToppingsThroughModel.objects.values_list( "topping__pk", "order"), [ (self.p1_t2.topping.pk, 0), (self.p1_t1.topping.pk, 1), (self.p1_t3.topping.pk, 2), (self.p2_t1.topping.pk, 0), (self.p2_t2.topping.pk, 1), (self.p2_t3.topping.pk, 2), (self.p2_t4.topping.pk, 3), ], ) def test_down(self): self.p2_t1.down() self.assertSequenceEqual( PizzaToppingsThroughModel.objects.values_list( "topping__pk", "order"), [ (self.p1_t1.topping.pk, 0), (self.p1_t2.topping.pk, 1), (self.p1_t3.topping.pk, 2), (self.p2_t2.topping.pk, 0), (self.p2_t1.topping.pk, 1), (self.p2_t3.topping.pk, 2), (self.p2_t4.topping.pk, 3), ], ) def test_to(self): self.p2_t1.to(1) self.assertSequenceEqual( PizzaToppingsThroughModel.objects.values_list( "topping__pk", "order"), [ (self.p1_t1.topping.pk, 0), (self.p1_t2.topping.pk, 1), (self.p1_t3.topping.pk, 2), (self.p2_t2.topping.pk, 0), (self.p2_t1.topping.pk, 1), (self.p2_t3.topping.pk, 2), (self.p2_t4.topping.pk, 3), ], ) def test_above(self): with self.assertRaises(ValueError): self.p1_t2.above(self.p2_t1) self.p1_t2.above(self.p1_t1) self.assertSequenceEqual( PizzaToppingsThroughModel.objects.values_list( "topping__pk", "order"), [ (self.p1_t2.topping.pk, 0), (self.p1_t1.topping.pk, 1), (self.p1_t3.topping.pk, 2), (self.p2_t1.topping.pk, 0), (self.p2_t2.topping.pk, 1), (self.p2_t3.topping.pk, 2), (self.p2_t4.topping.pk, 3), ], ) def test_below(self): with self.assertRaises(ValueError): self.p2_t1.below(self.p1_t2) self.p2_t1.below(self.p2_t2) self.assertSequenceEqual( PizzaToppingsThroughModel.objects.values_list( "topping__pk", "order"), [ (self.p1_t1.topping.pk, 0), (self.p1_t2.topping.pk, 1), (self.p1_t3.topping.pk, 2), (self.p2_t2.topping.pk, 0), (self.p2_t1.topping.pk, 1), (self.p2_t3.topping.pk, 2), (self.p2_t4.topping.pk, 3), ], ) def test_top(self): self.p1_t3.top() self.assertSequenceEqual( PizzaToppingsThroughModel.objects.values_list( "topping__pk", "order"), [ (self.p1_t3.topping.pk, 0), (self.p1_t1.topping.pk, 1), (self.p1_t2.topping.pk, 2), (self.p2_t1.topping.pk, 0), (self.p2_t2.topping.pk, 1), (self.p2_t3.topping.pk, 2), (self.p2_t4.topping.pk, 3), ], ) def test_bottom(self): self.p2_t1.bottom() self.assertSequenceEqual( PizzaToppingsThroughModel.objects.values_list( "topping__pk", "order"), [ (self.p1_t1.topping.pk, 0), (self.p1_t2.topping.pk, 1), (self.p1_t3.topping.pk, 2), (self.p2_t2.topping.pk, 0), (self.p2_t3.topping.pk, 1), (self.p2_t4.topping.pk, 2), (self.p2_t1.topping.pk, 3), ], )
def setUp(self): self.t1 = Topping.objects.create(name='tomatoe') self.t2 = Topping.objects.create(name='mozarella') self.t3 = Topping.objects.create(name='anchovy') self.t4 = Topping.objects.create(name='mushrooms') self.t5 = Topping.objects.create(name='ham') self.p1 = Pizza.objects.create( name='Napoli') # tomatoe, mozarella, anchovy self.p2 = Pizza.objects.create( name='Regina') # tomatoe, mozarella, mushrooms, ham # Now put the toppings on the pizza self.p1_t1 = PizzaToppingsThroughModel(pizza=self.p1, topping=self.t1) self.p1_t1.save() self.p1_t2 = PizzaToppingsThroughModel(pizza=self.p1, topping=self.t2) self.p1_t2.save() self.p1_t3 = PizzaToppingsThroughModel(pizza=self.p1, topping=self.t3) self.p1_t3.save() self.p2_t1 = PizzaToppingsThroughModel(pizza=self.p2, topping=self.t1) self.p2_t1.save() self.p2_t2 = PizzaToppingsThroughModel(pizza=self.p2, topping=self.t2) self.p2_t2.save() self.p2_t3 = PizzaToppingsThroughModel(pizza=self.p2, topping=self.t4) self.p2_t3.save() self.p2_t4 = PizzaToppingsThroughModel(pizza=self.p2, topping=self.t5) self.p2_t4.save()
class OrderWithRespectToTestsManyToMany(TestCase): def setUp(self): self.t1 = Topping.objects.create(name='tomatoe') self.t2 = Topping.objects.create(name='mozarella') self.t3 = Topping.objects.create(name='anchovy') self.t4 = Topping.objects.create(name='mushrooms') self.t5 = Topping.objects.create(name='ham') self.p1 = Pizza.objects.create(name='Napoli') # tomatoe, mozarella, anchovy self.p2 = Pizza.objects.create(name='Regina') # tomatoe, mozarella, mushrooms, ham # Now put the toppings on the pizza self.p1_t1 = PizzaToppingsThroughModel(pizza=self.p1, topping=self.t1) self.p1_t1.save() self.p1_t2 = PizzaToppingsThroughModel(pizza=self.p1, topping=self.t2) self.p1_t2.save() self.p1_t3 = PizzaToppingsThroughModel(pizza=self.p1, topping=self.t3) self.p1_t3.save() self.p2_t1 = PizzaToppingsThroughModel(pizza=self.p2, topping=self.t1) self.p2_t1.save() self.p2_t2 = PizzaToppingsThroughModel(pizza=self.p2, topping=self.t2) self.p2_t2.save() self.p2_t3 = PizzaToppingsThroughModel(pizza=self.p2, topping=self.t4) self.p2_t3.save() self.p2_t4 = PizzaToppingsThroughModel(pizza=self.p2, topping=self.t5) self.p2_t4.save() def test_saved_order(self): self.assertSequenceEqual( PizzaToppingsThroughModel.objects.values_list('topping__pk', 'order'), [ (self.p1_t1.topping.pk, 0), (self.p1_t2.topping.pk, 1), (self.p1_t3.topping.pk, 2), (self.p2_t1.topping.pk, 0), (self.p2_t2.topping.pk, 1), (self.p2_t3.topping.pk, 2), (self.p2_t4.topping.pk, 3) ]) def test_swap(self): with self.assertRaises(ValueError): self.p1_t1.swap(self.p2_t1) def test_previous(self): self.assertEqual(self.p1_t2.previous(), self.p1_t1) def test_previous_first(self): self.assertEqual(self.p2_t1.previous(), None) def test_down(self): self.assertEqual(self.p2_t1.next(), self.p2_t2) def test_down_last(self): self.assertEqual(self.p1_t3.next(), None) def test_up(self): self.p1_t2.up() self.assertSequenceEqual( PizzaToppingsThroughModel.objects.values_list('topping__pk', 'order'), [ (self.p1_t2.topping.pk, 0), (self.p1_t1.topping.pk, 1), (self.p1_t3.topping.pk, 2), (self.p2_t1.topping.pk, 0), (self.p2_t2.topping.pk, 1), (self.p2_t3.topping.pk, 2), (self.p2_t4.topping.pk, 3) ]) def test_down(self): self.p2_t1.down() self.assertSequenceEqual( PizzaToppingsThroughModel.objects.values_list('topping__pk', 'order'), [ (self.p1_t1.topping.pk, 0), (self.p1_t2.topping.pk, 1), (self.p1_t3.topping.pk, 2), (self.p2_t2.topping.pk, 0), (self.p2_t1.topping.pk, 1), (self.p2_t3.topping.pk, 2), (self.p2_t4.topping.pk, 3) ]) def test_to(self): self.p2_t1.to(1) self.assertSequenceEqual( PizzaToppingsThroughModel.objects.values_list('topping__pk', 'order'), [ (self.p1_t1.topping.pk, 0), (self.p1_t2.topping.pk, 1), (self.p1_t3.topping.pk, 2), (self.p2_t2.topping.pk, 0), (self.p2_t1.topping.pk, 1), (self.p2_t3.topping.pk, 2), (self.p2_t4.topping.pk, 3) ]) def test_above(self): with self.assertRaises(ValueError): self.p1_t2.above(self.p2_t1) self.p1_t2.above(self.p1_t1) self.assertSequenceEqual( PizzaToppingsThroughModel.objects.values_list('topping__pk', 'order'), [ (self.p1_t2.topping.pk, 0), (self.p1_t1.topping.pk, 1), (self.p1_t3.topping.pk, 2), (self.p2_t1.topping.pk, 0), (self.p2_t2.topping.pk, 1), (self.p2_t3.topping.pk, 2), (self.p2_t4.topping.pk, 3) ]) def test_below(self): with self.assertRaises(ValueError): self.p2_t1.below(self.p1_t2) self.p2_t1.below(self.p2_t2) self.assertSequenceEqual( PizzaToppingsThroughModel.objects.values_list('topping__pk', 'order'), [ (self.p1_t1.topping.pk, 0), (self.p1_t2.topping.pk, 1), (self.p1_t3.topping.pk, 2), (self.p2_t2.topping.pk, 0), (self.p2_t1.topping.pk, 1), (self.p2_t3.topping.pk, 2), (self.p2_t4.topping.pk, 3) ]) def test_top(self): self.p1_t3.top() self.assertSequenceEqual( PizzaToppingsThroughModel.objects.values_list('topping__pk', 'order'), [ (self.p1_t3.topping.pk, 0), (self.p1_t1.topping.pk, 1), (self.p1_t2.topping.pk, 2), (self.p2_t1.topping.pk, 0), (self.p2_t2.topping.pk, 1), (self.p2_t3.topping.pk, 2), (self.p2_t4.topping.pk, 3) ]) def test_bottom(self): self.p2_t1.bottom() self.assertSequenceEqual( PizzaToppingsThroughModel.objects.values_list('topping__pk', 'order'), [ (self.p1_t1.topping.pk, 0), (self.p1_t2.topping.pk, 1), (self.p1_t3.topping.pk, 2), (self.p2_t2.topping.pk, 0), (self.p2_t3.topping.pk, 1), (self.p2_t4.topping.pk, 2), (self.p2_t1.topping.pk, 3) ])