def test_commit4(self): """ Teste, ob der Status von nicht ganz erfüllten Aufträgen weiterhin bundled ist. Einer der Aufträge wird nicht erfüllt, da zu wenige Artikel zurückgemeldet werden. """ order_a = Order.objects.get(pk=14) order_a.orderline_set.create(artnr="12346", menge=1, preis='5.99') order_b = Order.objects.get(pk=15) bundle = simplest_bundle('TESTCASE3') data = json.dumps({ 'guid': bundle.designator, 'positions': [{'menge': 1, 'artnr': '12345'}], }) response = self.client.post('/robotrock/api/bundles/%s/' % bundle.designator, data, content_type="application/json", HTTP_AUTHORIZATION=build_authheader('api')) self.assertEqual(response.status_code, 201) self.assertTrue(compare_list(order_a.orderline_set.values_list('status', flat=True), "NC")) self.assertTrue(compare_list(order_b.orderline_set.values_list('status', flat=True), "N")) order_a.check_status() order_b.check_status() # Reload objects order_a = reload_instance(order_a) order_b = reload_instance(order_b) self.assertEqual(order_b.status, order_a.status)
def handle_label(self, source, **options): """Create a bundled order""" try: bundle = simplest_bundle(source) if bundle: log_action(bundle, 'ADDITION', message=u'Bündel für %s erzeugt: %s, %d orders' % (source, bundle.pk, bundle.orders.count())) except Exception, ex: print "Fehler beim Buendeln von Auftraegen, Exception %s" % ex
def test_bundled_order(self): """ Teste das Stornieren eines Auftrags, der zu einem Bündelauftrag gehört """ bundle = simplest_bundle('FF') order = Order.objects.filter(status='bundled').latest('id') response = self.client.delete('/robotrock/api/orders/%s/' % order.designator, HTTP_AUTHORIZATION=build_authheader('api')) self.assertEqual(response.status_code, 204) order = reload_instance(order) self.assertEqual(order.status, 'canceled') self.assertEqual(order.bundles.count(), 0) self.assertTrue(not order in bundle.orders.all())
def test_commit2(self): """ Teste, ob der Status von nicht ganz erfüllten Aufträgen weiterhin bundled ist. order_b wird nicht erfüllt, da kein Artikel 12346 zurückgeldet wird. """ order_a = Order.objects.get(pk=12) order_b = Order.objects.get(pk=13) bundle = simplest_bundle('TESTCASE2') self.assertEqual(bundle.orders.count(), 2) self.assertTrue(compare_list(bundle.orders.values_list('id', flat=True), [12, 13])) # Reload objects order_a = reload_instance(order_a) order_b = reload_instance(order_b) self.assertEqual(order_a.status, 'bundled') self.assertEqual(order_b.status, 'bundled') data = json.dumps({ 'guid': bundle.designator, 'positions': [{'menge': 1, 'artnr': '12345'}], }) response = self.client.post('/robotrock/api/bundles/%s/' % bundle.designator, data, content_type="application/json", HTTP_AUTHORIZATION=build_authheader('api')) self.assertEqual(response.status_code, 201) self.assertTrue(compare_list(order_a.orderline_set.values_list('status', flat=True), "N")) self.assertTrue(compare_list(order_b.orderline_set.values_list('status', flat=True), "C")) order_a.check_status() order_b.check_status() # Reload objects order_a = reload_instance(order_a) order_b = reload_instance(order_b) self.assertEqual(order_a.status, 'bundled') self.assertEqual(order_b.status, 'packed')
def test_commit(self): """ Teste das zurückmelden von Positionen eines gebündelten Auftrags. Alle Orderlines werden erfüllt. """ order_a = Order.objects.get(pk=10) order_b = Order.objects.get(pk=11) bundle = simplest_bundle('TESTCASE') self.assertEqual(bundle.orders.count(), 2) self.assertTrue(compare_list(bundle.orders.values_list('id', flat=True), [10, 11])) # Reload objects order_a = reload_instance(order_a) order_b = reload_instance(order_b) self.assertEqual(order_a.status, 'bundled') self.assertEqual(order_b.status, 'bundled') data = json.dumps({ 'guid': bundle.designator, 'positions': [{'menge': 2, 'artnr': '12345'}], }) response = self.client.post('/robotrock/api/bundles/%s/' % bundle.designator, data, content_type="application/json", HTTP_AUTHORIZATION=build_authheader('api')) self.assertEqual(response.status_code, 201) self.assertTrue(compare_list(order_a.orderline_set.values_list('status', flat=True), "C")) self.assertTrue(compare_list(order_b.orderline_set.values_list('status', flat=True), "C")) order_a.check_status() order_b.check_status() # Reload objects order_a = reload_instance(order_a) order_b = reload_instance(order_b) self.assertEqual(order_a.status, 'packed') self.assertEqual(order_b.status, 'packed')
def test_commit5(self): """ Teste Rückmeldung gleicher Artikelnummern in verschiedenen Positionen. """ orders = Order.objects.filter(pk__in=[10, 11, 13, 14]) orders.update(source='TESTCASE4') bundle = simplest_bundle('TESTCASE4') data = json.dumps({ 'guid': bundle.designator, 'positions': [{'menge': 2, 'artnr': '12345'}, {'menge': 1, 'artnr': '12345'}], }) response = self.client.post('/robotrock/api/bundles/%s/' % bundle.designator, data, content_type="application/json", HTTP_AUTHORIZATION=build_authheader('api')) self.assertEqual(response.status_code, 201) self.assertEqual(list(orders.values_list('status', flat=True).order_by('status')), [u'bundled', u'packed', u'packed', u'packed'])