|
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