Esempio n. 1
0
    def test_redraw_with_services(self, mock_renderer, mock_config):
        # Given
        renderer = mock_renderer.return_value
        under_test = Board(0, 0)
        station = "Clapham Junction"
        platform = "7"
        services = [
            _define_service('a1234b', datetime.date(2021, 3, 21), '1140',
                            'London Waterloo', '1140', '1'),
            _define_service('a5678c', datetime.date(2021, 3, 21), '1157',
                            'Basingstoke', '1202', '2')
        ]

        # When
        under_test.set_station(station, platform)
        under_test.update_services(services)
        under_test.redraw()

        # Verify
        renderer.update_station_name.assert_called_with(station, platform)
        renderer.update_primary_departure.assert_called_with(
            services[0].location_detail)
        renderer.update_additional_service_row.assert_called()
        renderer.commit.assert_called()
        mock_config.return_value.assert_not_called()
Esempio n. 2
0
    def test_draw_box_delegated(self, mock_renderer, mock_config):
        # Given
        renderer = mock_renderer.return_value
        under_test = Board(0, 0)

        # When
        under_test.draw_box()

        # Verify
        renderer.draw_box.assert_called()
        mock_config.return_value.assert_not_called()
Esempio n. 3
0
    def test_update_time(self, mock_renderer, mock_config):
        # Given
        renderer = mock_renderer.return_value
        under_test = Board(0, 0)

        # When
        under_test.update_time()

        # Verify
        renderer.update_time.assert_called()
        renderer.commit.assert_called()
        mock_config.return_value.assert_not_called()
Esempio n. 4
0
    def test_show_no_services(self, mock_renderer, mock_config):
        # Given
        renderer = mock_renderer.return_value
        under_test = Board(0, 0)

        # When
        under_test.show_no_services()

        # Verify
        renderer.show_no_departures.assert_called()
        renderer.clear_additional_service_row.assert_called()
        renderer.commit.assert_called()
        mock_config.return_value.assert_not_called()
Esempio n. 5
0
    def test_set_station(self, mock_renderer, mock_config):
        # Given
        station = "Clapham Junction"
        platform = "7"
        renderer = mock_renderer.return_value
        under_test = Board(0, 0)

        # When
        under_test.set_station(station, platform)

        # Verify
        renderer.update_station_name.assert_called_with(station, platform)
        renderer.commit.assert_called()
        mock_config.return_value.assert_not_called()
Esempio n. 6
0
    def test_advance_ticker_without_services(self, mock_renderer, mock_config):
        # Given
        renderer = mock_renderer.return_value
        under_test = Board(0, 0)
        station = "Clapham Junction"
        platform = "7"
        services = []

        # When
        under_test.set_station(station, platform)
        under_test.update_services(services)
        under_test.advance_ticker()

        # Verify
        renderer.assert_not_called()
        mock_config.return_value.assert_not_called()
Esempio n. 7
0
    def __init__(self):
        for config_station in self.__config.stations:
            if config_station.code not in self.__station_data:
                self.__station_data[config_station.code] = StationData(
                    config_station.code)

            if config_station.code not in self.__boards:
                self.__boards[config_station.code] = dict()

            # TODO calculate board positions based on available terminal size
            # We need to cast platform as a string i.e. in case we have platform 1a
            self.__boards[config_station.code][str(
                config_station.platform)] = Board(
                    (self.__board_count * 10) + 1, 0)
            self.__board_count += 1

        self.__stdscr = curses.initscr()
        self.__update_size()
Esempio n. 8
0
    def test_redraw_without_services(self, mock_renderer, mock_config):
        # Given
        renderer = mock_renderer.return_value
        under_test = Board(0, 0)
        station = "Clapham Junction"
        platform = "7"
        services = []

        # When
        under_test.set_station(station, platform)
        under_test.update_services(services)
        under_test.redraw()

        # Verify
        renderer.update_station_name.assert_called_with(station, platform)
        renderer.show_no_departures.assert_called()
        renderer.clear_additional_service_row.assert_called()
        renderer.commit.assert_called()

        mock_config.return_value.assert_not_called()
Esempio n. 9
0
    def test_update_calling_points(self, mock_renderer, mock_config):
        # Given
        mock_ticker = unittest.mock.Mock()
        mock_ticker_instance = mock_ticker.return_value

        with patch('display.board.Ticker', mock_ticker_instance):
            under_test = Board(0, 0)

            calling_points = [
                _define_location('Woking', 'WOK', '1202', '1202'),
                _define_location('Clapham Junction', 'CLJ', '1227', '1227'),
                _define_location('Vauxhall', 'VXH', '1235', '1235'),
                _define_location('London Waterloo', 'WAT', '1240', '1241'),
            ]

            # When
            under_test.update_service_calling_points(calling_points, 'CLJ')

            # Verify
            mock_renderer.return_value.assert_not_called()
            mock_ticker.return_value.assert_called()
            mock_config.return_value.assert_not_called()
Esempio n. 10
0
    def test_advance_ticker(self, mock_renderer, mock_config):
        # Given
        renderer = mock_renderer.return_value
        under_test = Board(0, 0)
        station = "Clapham Junction"
        platform = "7"
        services = [
            _define_service('a1234b', datetime.date(2021, 3, 21), '1140',
                            'London Waterloo', '1140', '1'),
            _define_service('a5678c', datetime.date(2021, 3, 21), '1157',
                            'Basingstoke', '1202', '2')
        ]

        # When
        under_test.set_station(station, platform)
        under_test.update_services(services)
        under_test.advance_ticker()

        # Verify
        renderer.update_ticker_row.assert_called()
        renderer.commit.assert_called()
        mock_config.return_value.assert_not_called()
Esempio n. 11
0
    def __init__(self, player, screen):
        self._player = player
        self._board = Board(24, 10, screen)
        self._snake = Snake([(2, 5), (3, 5), (4, 5)], player.symbol,
                            player.color)
        self._fruits = set()
        self._eaten_fruits = set()
        self._walls = set()
        self._score = 0
        self._direction = Direction.RIGHT
        self._game_over = False

        self._add_fruit()

        for w in range(1, self._board.width - 1):
            self._walls.add(HorizontalWall((w, 0)))
            self._walls.add(HorizontalWall((w, self._board.height - 1)))

        for h in range(self._board.height):
            self._walls.add(VerticalWall((0, h)))
            self._walls.add(VerticalWall((self._board.width - 1, h)))

        walls_pos = list(map(lambda wall: wall.render(), self._walls))
        self._board.set_walls_pos(walls_pos)