def test_customs(self):
     input = jso({
         "last_event": {
             "location": "DEF",
             "event_type": "CUSTOMS"
         },
         "itinerary": [{
             "load": {
                 "location": "ABC"
             },
             "unload": {
                 "location": "DEF",
                 "time": 1526897537633
             },
             "voyage": "XYZ"
         }, {
             "load": {
                 "location": "DEF",
                 "time": 1526897537633
             },
             "voyage": "STU"
         }]
     })
     self.assertEqual({'event_type': 'NO_ACTIVITY'},
                      calculate_next_activity(input.last_event,
                                              input.itinerary))
 def test_unload_load(self):
     input = jso({
         "last_event": {
             "location": "DEF",
             "voyage": "XYZ",
             "event_type": "UNLOAD"
         },
         "itinerary": [{
             "load": {
                 "location": "ABC"
             },
             "unload": {
                 "location": "DEF",
                 "time": 1526897537633
             },
             "voyage": "XYZ"
         }, {
             "load": {
                 "location": "DEF",
                 "time": 1526897537633
             },
             "voyage": "STU"
         }]
     })
     self.assertEqual(
         {
             'event_type': 'LOAD',
             'location': 'DEF',
             'voyage': 'STU',
             'completion_time': 1526897537633
         }, calculate_next_activity(input.last_event, input.itinerary))
 def test_unknown(self):
   input = jso({
     "last_event": {
       "location": "ABC",
       "voyage": "XYZ",
       "event_type": "RECEIVE"
     },
     "itinerary": []
   })
   self.assertEqual('UNKNOWN', calculate_delivery_status(input.last_event, input.itinerary))
 def test_load(self):
   input = jso({
     "last_event": {
       "location": "ABC",
       "voyage": "XYZ",
       "event_type": "LOAD",
       "completion_time": 1526897537633
     },
     "itinerary": self.itinerary
   })
   self.assertEqual('ON_SCHEDULE', calculate_delivery_status(input.last_event, input.itinerary))
 def test_misdirected(self):
   input = jso({
     "last_event": {
       "location": "DEF",
       "voyage": "XYZ",
       "event_type": "RECEIVE",
       "completion_time": 1526897537635
     },
     "itinerary": self.itinerary
   })
   self.assertEqual('MISDIRECTED', calculate_delivery_status(input.last_event, input.itinerary))
 def test_behind_schedule(self):
   input = jso({
     "last_event": {
       "location": "ABC",
       "voyage": "XYZ",
       "event_type": "RECEIVE",
       "completion_time": 1526897537635
     },
     "itinerary": self.itinerary
   })
   self.assertEqual('BEHIND_SCHEDULE', calculate_delivery_status(input.last_event, input.itinerary))
 def test_claim(self):
   input = jso({
     "last_event": {
       "location": "GHI",
       "voyage": "STU",
       "event_type": "CLAIM",
       "completion_time": 1526897537632
     },
     "itinerary": self.itinerary
   })
   self.assertEqual('AHEAD_OF_SCHEDULE', calculate_delivery_status(input.last_event, input.itinerary))
 def test_too_late(self):
     itinerary = jso([{
         'load': {
             'location': 'ABC'
         }
     }, {
         'unload': {
             'location': 'DEF',
             'time': 123456799
         }
     }])
     self.assertFalse(
         is_cargo_specification_satisfied(specification, itinerary))
 def test_wrong_destination(self):
     itinerary = jso([{
         'load': {
             'location': 'ABC'
         }
     }, {
         'unload': {
             'location': 'DDEF',
             'time': 123456788
         }
     }])
     self.assertFalse(
         is_cargo_specification_satisfied(specification, itinerary))
 def test_good(self):
     itinerary = jso([{
         'load': {
             'location': 'ABC'
         }
     }, {
         'unload': {
             'location': 'DEF',
             'time': 123456788
         }
     }])
     self.assertTrue(
         is_cargo_specification_satisfied(specification, itinerary))
 def setUp(self):
     self.event = jso({
         "lastEvent": {
             "location": "DEF",
             "voyageId": "XYZ",
             "eventType": "UNLOAD",
             "completionTime": 1526897537633,
         },
         "itinerary": [{
             "loadLocation": "ABC",
             "unloadLocation": "DEF",
             "unloadTime": 1526897537633,
             "voyageId": "XYZ"
         }, {
             "loadLocation": "DEF",
             "loadTime": 1526897537633,
             "voyageId": "STU"
         }]
     })
 def test_receive(self):
     input = jso({
         "last_event": {
             "location": "DEF",
             "event_type": "RECEIVE"
         },
         "itinerary": [{
             "load": {
                 "location": "ABC",
                 "time": 1526897537633
             },
             "voyage": "XYZ"
         }]
     })
     self.assertEqual(
         {
             'event_type': 'LOAD',
             'location': 'ABC',
             'voyage': 'XYZ',
             'completion_time': 1526897537633
         }, calculate_next_activity(input.last_event, input.itinerary))
 def test_unload_claim(self):
     input = jso({
         "last_event": {
             "location": "DEF",
             "voyage": "XYZ",
             "event_type": "UNLOAD"
         },
         "itinerary": [{
             "load": {
                 "location": "ABC"
             },
             "unload": {
                 "location": "DEF",
                 "time": 1526897537633
             },
             "voyage": "XYZ"
         }]
     })
     self.assertEqual({
         'event_type': 'CLAIM',
         'location': 'DEF'
     }, calculate_next_activity(input.last_event, input.itinerary))
 def test(self):
     self.assertEqual('NOT_RECEIVED',
                      calculate_transportation_status(jso({})))
     self.assertEqual(
         'UNKNOWN',
         calculate_transportation_status(jso({'event_type': 'KKK'})))
     self.assertEqual(
         'IN_PORT',
         calculate_transportation_status(jso({'event_type': 'RECEIVE'})))
     self.assertEqual(
         'ONBOARD_CARRIER',
         calculate_transportation_status(jso({'event_type': 'LOAD'})))
     self.assertEqual(
         'IN_PORT',
         calculate_transportation_status(jso({'event_type': 'UNLOAD'})))
     self.assertEqual(
         'IN_PORT',
         calculate_transportation_status(jso({'event_type': 'CUSTOMS'})))
     self.assertEqual(
         'CLAIMED',
         calculate_transportation_status(jso({'event_type': 'CLAIM'})))
Ejemplo n.º 15
0
 def test(self):
     self.assertEqual('EVENT_TYPE_IS_MISSING', check_voyage(jso({})))
     self.assertEqual('OK', check_voyage(jso({'event_type': 'RECEIVE'})))
     self.assertEqual(
         'UNEXPECTED_VOYAGE_REFERENCE',
         check_voyage(jso({
             'event_type': 'RECEIVE',
             'voyage': 'XYZ'
         })))
     self.assertEqual('VOYAGE_REF_IS_MISSING',
                      check_voyage(jso({'event_type': 'LOAD'})))
     self.assertEqual('VOYAGE_REF_IS_MISSING',
                      check_voyage(jso({'event_type': 'UNLOAD'})))
     self.assertEqual(
         'OK', check_voyage(jso({
             'event_type': 'LOAD',
             'voyage': 'XYZ'
         })))
from is_cargo_specification_satisfied import is_cargo_specification_satisfied
import unittest
from matte.jso import jso

specification = jso({
    'origin': 'ABC',
    'destination': 'DEF',
    'arrival_dead_line': 123456789
})


class TestCargoSpecificationChecking(unittest.TestCase):
    def test_none(self):
        self.assertFalse(is_cargo_specification_satisfied(None, None))
        self.assertFalse(is_cargo_specification_satisfied(specification, None))
        self.assertFalse(is_cargo_specification_satisfied(specification, []))

    def test_good(self):
        itinerary = jso([{
            'load': {
                'location': 'ABC'
            }
        }, {
            'unload': {
                'location': 'DEF',
                'time': 123456788
            }
        }])
        self.assertTrue(
            is_cargo_specification_satisfied(specification, itinerary))