def test_get_butthole_ends(some_datetime):
    """Test getting the list of buttholes which end in this square."""
    for start_square in (55, 66, 77):
        baker.make("Butthole", start_square=start_square, end_square=26)

    square = board.Square(number=26, current_position=1, now=some_datetime)
    assert set(square.get_butthole_ends()) == set([55, 66, 77])
def test_butthole_ends():
    """Test getting the list of buttholes which end in this square."""
    for start_square in (55, 66, 77):
        factories.ButtholeFactory(start_square=start_square, end_square=26)

    square = board.Square(number=26)
    assert set(square.butthole_ends) == set([55, 66, 77])
def test_is_current_position(some_datetime, number, pos, is_current_position):
    """Test the is_current_position flag is set correctly."""
    square = board.Square(number=number,
                          current_position=pos,
                          now=some_datetime)
    assert square.is_current_position == is_current_position
def test_was_visited(some_datetime, number, pos, was_visited):
    """Test that the was_visited flag is set correctly on squares."""
    square = board.Square(number=number,
                          current_position=pos,
                          now=some_datetime)
    assert square.was_visited == was_visited
def test_no_butthole_ends(some_datetime):
    square = board.Square(number=74, current_position=1, now=some_datetime)
    assert list(square.get_butthole_ends()) == []
def test_butthole_direction_backward(some_datetime):
    baker.make("Butthole", start_square=50, end_square=49)
    square = board.Square(number=50, current_position=1, now=some_datetime)
    assert square.get_butthole_direction() == "backward"
def test_not_butthole_start(some_datetime):
    square = board.Square(number=17, current_position=1, now=some_datetime)
    assert square.is_butthole_start() is False
def test_is_butthole_start(some_datetime):
    baker.make("Butthole", start_square=50)
    square = board.Square(number=50, current_position=1, now=some_datetime)
    assert square.is_butthole_start() is True
def test_not_special(some_datetime):
    square = board.Square(number=95, current_position=1, now=some_datetime)
    assert square.get_special() is None
def test_get_special(some_datetime):
    """Test retrieving a square's special square type."""
    special = baker.make("SpecialSquareType", image="")
    baker.make("SpecialSquare", square=5, type=special)
    square = board.Square(number=5, current_position=1, now=some_datetime)
    assert special == square.get_special()
def test_no_butthole_ends():
    square = board.Square(number=74)
    assert len(square.butthole_ends) == 0  # pylint: disable=len-as-condition
def test_not_butthole_start():
    square = board.Square(number=17)
    assert square.butthole_start is False
def test_butthole_start():
    factories.ButtholeFactory(start_square=50)
    square = board.Square(number=50)
    assert square.butthole_start is True
def test_not_special():
    square = board.Square(number=95)
    assert square.special is None
def test_special():
    """Test retrieving a square's special square type."""
    special = factories.SpecialSquareTypeFactory()
    factories.SpecialSquareFactory(square=5, type=special)
    square = board.Square(number=5)
    assert special == square.special