def test_process_primary_motion(self):
     # Uncompleted stringer
     self.string_handler = StringHandler(0)
     self.processor = Processor(self.string_handler, ProtocolHandler(), ExpectationHandler())
     self.assertEqual(["Extend Blocker"], self.processor.process("Primary Motion"))
     # Completed stringer
     self.string_handler.stringed_disks = [0] * 8
     self.assertEqual(["Ignore"], self.processor.process("Primary Motion"))
 def test_process_exception(self):
     self.processor = Processor(StringHandler(0), ProtocolHandler(), ExpectationHandler())
     self.assertEqual(["Enter Error Mode"], self.processor.process("Tertiary Motion"))
     self.assertEqual(["Enter Error Mode"], self.processor.process("Secondary Black"))
     self.assertEqual(["Enter Error Mode"], self.processor.process("Secondary White"))
     self.assertEqual(["Enter Error Mode"], self.processor.process("Secondary Motion"))
     self.assertEqual(["Enter Error Mode"], self.processor.process("Confirm Blocker Retracted"))
     self.assertEqual(["Enter Error Mode"], self.processor.process("Confirm Pusher Pushed"))
     self.assertEqual(["Enter Error Mode"], self.processor.process("Primary Black"))
     self.assertEqual(["Enter Error Mode"], self.processor.process("Primary White"))
     self.assertEqual(["Enter Error Mode"], self.processor.process("Confirm Blocker Extended"))
 def test_process_ping(self):
     # No expired outputs
     self.expectations = ExpectationHandler()
     self.processor = Processor(StringHandler(0), ProtocolHandler(), self.expectations)
     self.expectations.add("in", 5, "TEST MESSAGE")
     for _ in range(4):
         self.assertEqual(["Pong"], self.processor.process("Ping"))
     # Expired outputs
     self.assertEqual(["Enter Error Mode"], self.processor.process("Ping"))
     self.assertEqual(["Pong"], self.processor.process("Ping"))
     self.expectations.add("new", 0, "TEST MESSAGE")
     self.assertEqual(["Enter Error Mode"], self.processor.process("Ping"))
 def test_process_primary_black(self):
     # Unwanted color
     self.expectations = ExpectationHandler()
     self.processor = Processor(StringHandler(0), ProtocolHandler(), self.expectations)
     self.expectations.add("Primary Color Detected", 10, "TEST MESSAGE")
     self.assertEqual(["Retract Blocker"], self.processor.process("Primary Black"))
     # No permission from protocol
     self.protocol = DummyProtocolHandler(False)
     self.processor = Processor(StringHandler(1), self.protocol, self.expectations)
     self.expectations.add("Primary Color Detected", 10, "TEST MESSAGE")
     self.assertEqual(["Retract Blocker"], self.processor.process("Primary Black"))
     # Wanted and permission
     self.protocol = DummyProtocolHandler(True)
     self.processor = Processor(StringHandler(1), self.protocol, self.expectations)
     self.expectations.add("Primary Color Detected", 10, "TEST MESSAGE")
     self.assertEqual(["Push Pusher"], self.processor.process("Primary Black"))
Esempio n. 5
0
def choose_protocol_handler():
    while True:
        try:
            mode = str(
                input(
                    "Do you want to connect to the protocol or use a dummy? [p/d] "
                ))

            if mode == "p":
                return ProtocolHandler()
            elif mode == "d":
                return DummyProtocolHandler(True)
            else:
                print("Incorrect input: enter 'p' or 'd'.")
                continue

        except ValueError:
            print("Incorrect input: enter 'p' or 'd'.")
Esempio n. 6
0
class TestInit(TestCase):
    def test_login_exception(self):
        self.assertRaises(HTTPError, ProtocolHandler().login, "group11", "x")
        self.assertRaises(HTTPError,
                          ProtocolHandler().login, "x", "0G1EH2HF28")
        self.assertRaises(HTTPError, ProtocolHandler().login, "x", "x")

    def test_can_pickup(self):
        self.protocol = ProtocolHandler()
        self.assertIsInstance(self.protocol.can_pickup(), bool)

    def test_inform_pickup(self):
        self.protocol = ProtocolHandler()
        self.assertIsInstance(self.protocol.inform_pickup(), bool)

    def test_inform_color(self):
        self.protocol = ProtocolHandler()
        self.protocol.inform_color(1)  # Black
        self.protocol.inform_color(0)  # White

    def test_inform_alive(self):
        self.protocol = ProtocolHandler()
        self.protocol.inform_alive()
 def test_process_error_string_disk(self):
     self.processor = Processor(StringHandler(0), ProtocolHandler(), ExpectationHandler())
     self.assertEqual(["Enter Error Mode"], self.processor.process("Error String Disk"))
 def test_process_blocker_extended(self):
     self.expectations = ExpectationHandler()
     self.processor = Processor(StringHandler(0), ProtocolHandler(), self.expectations)
     self.expectations.add("Confirm Blocker Extended", 10, "TEST MESSAGE")
     self.assertEqual(["Scan Primary Color"], self.processor.process("Confirm Blocker Extended"))
Esempio n. 9
0
 def test_inform_color(self):
     self.protocol = ProtocolHandler()
     self.protocol.inform_color(1)  # Black
     self.protocol.inform_color(0)  # White
Esempio n. 10
0
 def test_inform_alive(self):
     self.protocol = ProtocolHandler()
     self.protocol.inform_alive()
 def test_process_unknown(self):
     self.processor = Processor(StringHandler(69), ProtocolHandler(), ExpectationHandler())
     self.assertEqual(["Enter Error Mode"], self.processor.process("Test"))
     self.assertEqual(["Enter Error Mode"], self.processor.process("Gibberish"))
 def test_process_message_buffer_full(self):
     self.processor = Processor(StringHandler(0), ProtocolHandler(), ExpectationHandler())
     self.assertEqual(["Enter Error Mode"], self.processor.process("Message Buffer Full"))
Esempio n. 13
0
 def test_inform_pickup(self):
     self.protocol = ProtocolHandler()
     self.assertIsInstance(self.protocol.inform_pickup(), bool)
 def test_process_secondary_motion(self):
     self.expectations = ExpectationHandler()
     self.processor = Processor(StringHandler(0), ProtocolHandler(), self.expectations)
     self.expectations.add("Secondary Motion", 10, "TEST MESSAGE")
     self.assertEqual(["Scan Secondary Color"], self.processor.process("Secondary Motion"))
 def test_process_pusher_pushed(self):
     self.expectations = ExpectationHandler()
     self.processor = Processor(StringHandler(0), ProtocolHandler(), self.expectations)
     self.expectations.add("Confirm Pusher Pushed", 10, "TEST MESSAGE")
     self.assertEqual(["Retract Blocker"], self.processor.process("Confirm Pusher Pushed"))
 def test_process_secondary_neither(self):
     self.processor = Processor(StringHandler(0), ProtocolHandler(), ExpectationHandler())
     self.assertEqual(["Enter Error Mode"], self.processor.process("Secondary Neither"))
 def test_process_disk_stringed(self):
     self.expectations = ExpectationHandler()
     self.processor = Processor(StringHandler(0), ProtocolHandler(), self.expectations)
     self.expectations.add("Tertiary Motion", 10, "TEST MESSAGE")
     self.assertEqual(["Ignore"], self.processor.process("Tertiary Motion"))
Esempio n. 18
0
 def test_login_exception(self):
     self.assertRaises(HTTPError, ProtocolHandler().login, "group11", "x")
     self.assertRaises(HTTPError,
                       ProtocolHandler().login, "x", "0G1EH2HF28")
     self.assertRaises(HTTPError, ProtocolHandler().login, "x", "x")
 def test_process_blocker_retracted(self):
     self.expectations = ExpectationHandler()
     self.processor = Processor(StringHandler(0), ProtocolHandler(), self.expectations)
     self.expectations.add("Confirm Blocker Retracted", 10, "TEST MESSAGE")
     self.assertEqual(["Ignore"], self.processor.process("Confirm Blocker Retracted"))
 def test_process_unexpected_error(self):
     self.processor = Processor(StringHandler(0), ProtocolHandler(), ExpectationHandler())
     self.assertEqual(["Enter Error Mode"], self.processor.process("Unexpected Error Occurred"))
 def test_process_secondary_black(self):
     self.expectations = ExpectationHandler()
     self.processor = Processor(StringHandler(0), ProtocolHandler(), self.expectations)
     self.expectations.add("Secondary Black Detected", 10, "TEST MESSAGE")
     self.assertEqual(["Push Stringer"], self.processor.process("Secondary Black"))
 def test_process_unknown_command(self):
     self.processor = Processor(StringHandler(0), ProtocolHandler(), ExpectationHandler())
     self.assertEqual(["Enter Error Mode"], self.processor.process("Unknown Command Sent"))