示例#1
0
    def test_attributes(self):
        (parent, _) = Pipe()
        race = r.Race(Queue(), parent, [1, 2], "remote", "socket")

        self.assertEqual(race.remote, "remote")
        self.assertEqual(race.socket, "socket")
        self.assertTrue(len(race.players), 2)
示例#2
0
    def test_player_defaults(self):
        (parent, _) = Pipe()
        race = r.Race(Queue(), parent, [2, 3], "remote", "socket")

        self.assertEqual(race.players[2].nth, 2)
        self.assertEqual(race.players[3].nth, 3)

        self.assertEqual(race.players[2].speed, 0)
        self.assertEqual(race.players[3].speed, 0)

        self.assertEqual(race.players[2].lanechange, False)
        self.assertEqual(race.players[3].lanechange, False)
示例#3
0
    def test_queue_is_consumed(self):
        items = ["one", {"message": "start", "data": {}}]

        q = self.mock_queue(items)
        c = self.mock_connection()
        race = r.Race(q, c, [1, 2], "remote", "socket")

        with patch.object(race,
                          '_Race__lirc_conn',
                          return_value=self.mock_lirc(
                              "0000001 SYNC remote")) as lc_method:
            with patch.object(race,
                              '_Race__handle_message',
                              return_value=MagicMock()) as hm_method:
                race.run(True)

                self.assertEqual(
                    hm_method.mock_calls,
                    [call(items[1]), call(items[0])])
                lc_method.assert_called_once()
示例#4
0
    def test_state_is_reported(self):
        items = [{"message": "state", "data": {}}]

        q = self.mock_queue(items)
        c = self.mock_connection()
        race = r.Race(q, c, [1, 2], "remote", "socket")

        with patch.object(race,
                          '_Race__lirc_conn',
                          return_value=self.mock_lirc(
                              "0000001 SYNC remote")) as lc_method:
            race.run(True)

            c.send.assert_called_once()

            # Pull out args to self.pipe.send()
            call = c.send.mock_calls[0]
            _, args, _ = call

            self.assertFalse(args[0]["active"])
            self.assertEqual(len(args[0]["players"]), 2)
示例#5
0
    def test_requires_lirc(self):
        (parent, _) = Pipe()
        race = r.Race(Queue(), parent, [1, 2], "remote", "socket")

        self.assertRaises(RuntimeError, race.run)