Elevator: tests and solutions


makePythonTdd Elevator

The code in makePythonTdd.sh from Elevator

 1#!/bin/bash
 2uv init elevator
 3cd elevator
 4mkdir tests
 5touch tests/__init__.py
 6
 7echo "import unittest
 8
 9
10class TestElevator(unittest.TestCase):
11
12    def test_failure(self):
13        self.assertFalse(True)
14
15
16# Exceptions seen
17# AssertionError
18" > tests/test_elevator.py
19
20echo "pytest" > requirements.txt
21echo "pytest-watcher" >> requirements.txt
22uv add --requirement requirements.txt
23uv run pytest-watcher . --now

The code in makePythonTdd.ps1 from Elevator

 1uv init elevator
 2cd elevator
 3mkdir tests
 4New-Item tests/__init__.py
 5
 6"import unittest
 7
 8
 9class TestElevator(unittest.TestCase):
10
11    def test_failure(self):
12        self.assertFalse(True)
13
14
15# Exceptions seen
16# AssertionError
17" | Out-File "tests/test_elevator.py" -Encoding UTF8
18
19"pytest" | Out-File requirements.txt -Encoding UTF8
20"pytest-watcher" >> requirements.txt
21uv add --requirement requirements.txt
22uv run pytest-watcher . --now

Elevator: tests

The code in elevator/tests/test_elevator.py from Elevator


Elevator: solution

The code in elevator/src/elevator/__init__.py from Elevator

elevator/src/elevator/__init__.py
 1def controller(
 2        number_pushed, doors_closed=False,
 3        above_weight=False, emergency=False,
 4    ):
 5    if (
 6        not (number_pushed and doors_closed)
 7        or above_weight
 8        or emergency
 9    ):
10        return False
11    return True