|
1 | | -import unittest |
| 1 | +import pytest |
| 2 | + |
2 | 3 | from patterns.behavioral.state import Radio |
3 | 4 |
|
4 | 5 |
|
5 | | -class RadioTest(unittest.TestCase): |
6 | | - """ |
7 | | - Attention: Test case results depend on test case execution. The test cases |
8 | | - in this integration test class should be executed in an explicit order: |
9 | | - http://stackoverflow.com/questions/5387299/python-unittest-testcase-execution-order |
10 | | - """ |
11 | | - |
12 | | - @classmethod |
13 | | - def setUpClass(self): |
14 | | - self.radio = Radio() |
15 | | - |
16 | | - def test_initial_state(self): |
17 | | - state = self.radio.state.name |
18 | | - expected_state_name = 'AM' |
19 | | - self.assertEqual(state, expected_state_name) |
20 | | - |
21 | | - def test_initial_am_station(self): |
22 | | - station = self.radio.state.stations[self.radio.state.pos] |
23 | | - expected_station = '1250' |
24 | | - self.assertEqual(station, expected_station) |
25 | | - |
26 | | - def test_2nd_am_station_after_scan(self): |
27 | | - self.radio.scan() |
28 | | - station = self.radio.state.stations[self.radio.state.pos] |
29 | | - expected_station = '1380' |
30 | | - self.assertEqual(station, expected_station) |
31 | | - |
32 | | - def test_3rd_am_station_after_scan(self): |
33 | | - self.radio.scan() |
34 | | - station = self.radio.state.stations[self.radio.state.pos] |
35 | | - expected_station = '1510' |
36 | | - self.assertEqual(station, expected_station) |
37 | | - |
38 | | - def test_am_station_overflow_after_scan(self): |
39 | | - self.radio.scan() |
40 | | - station = self.radio.state.stations[self.radio.state.pos] |
41 | | - expected_station = '1250' |
42 | | - self.assertEqual(station, expected_station) |
43 | | - |
44 | | - def test_shall_toggle_from_am_to_fm(self): |
45 | | - self.radio.toggle_amfm() |
46 | | - state = self.radio.state.name |
47 | | - expected_state_name = 'FM' |
48 | | - self.assertEqual(state, expected_state_name) |
49 | | - |
50 | | - def test_shall_toggle_from_fm_to_am(self): |
51 | | - self.radio.toggle_amfm() |
52 | | - state = self.radio.state.name |
53 | | - expected_state_name = 'AM' |
54 | | - self.assertEqual(state, expected_state_name) |
| 6 | +@pytest.fixture |
| 7 | +def radio(): |
| 8 | + return Radio() |
| 9 | + |
| 10 | +def test_initial_state(radio): |
| 11 | + assert radio.state.name == 'AM' |
| 12 | + |
| 13 | +def test_initial_am_station(radio): |
| 14 | + initial_pos = radio.state.pos |
| 15 | + assert radio.state.stations[initial_pos] == '1250' |
| 16 | + |
| 17 | +def test_toggle_amfm(radio): |
| 18 | + assert radio.state.name == 'AM' |
| 19 | + |
| 20 | + radio.toggle_amfm() |
| 21 | + assert radio.state.name == 'FM' |
| 22 | + |
| 23 | + radio.toggle_amfm() |
| 24 | + assert radio.state.name == 'AM' |
0 commit comments