TestTubeTrains   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 15
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 15
rs 10
wmc 3

2 Methods

Rating   Name   Duplication   Size   Complexity  
A test_GetTrainsOnPlatform() 0 12 2
A setUp() 0 2 1
1
import unittest
2
from tube.tubeAPI import Tube
3
from tube.tubeAPI import TubeLine, TubeStation, TubeStationLinePlatform
4
from tube.tubeAPI import TubePlatform, TubeTrain
5
6
import vcr
7
8
my_vcr = vcr.VCR(
9
	serializer = 'json',
10
	cassette_library_dir = 'tube/tests/fixtures/cassettes',
11
	record_mode = 'once',
12
)
13
14
import logging
15
16
logging.basicConfig() # you need to initialize logging, otherwise you will not see anything from vcrpy
17
vcr_log = logging.getLogger("vcr")
18
vcr_log.setLevel(logging.DEBUG)
19
20
class TestFriendlyTrainsAccess(unittest.TestCase):
21
	def setUp(self):
22
		self.tube = Tube()
23
	
24
	def test_GetAllTrainsLineStation(self):
25
		with my_vcr.use_cassette('Detail-OXC-B.json'):
26
			trains = self.tube.map.get(linecode="B", stationcode="OXC").getAllTrains()
27
			self.assertIsInstance( trains, dict )
28
			self.assertIsInstance( trains[trains.keys()[0]], TubeTrain)
29
			self.assertEqual( len(trains), 14)
30
31
		
32
	def test_GetAllTrainsLine(self):
33
		with my_vcr.use_cassette('Detail-Friendly-GetAll.json'):
34
			trains = self.tube.map.get(linecode="V").getAllTrains()
35
			self.assertIsInstance( trains, dict )
36
		
37
	def test_GetAllTrainsStation(self):
38
		with my_vcr.use_cassette('Detail-Friendly-GetAll-Station.json'):
39
			trains = self.tube.map.get(stationcode="OXC").getAllTrains()
40
41
42
class TestTubePlatforms(unittest.TestCase):
43
	def setUp(self):
44
		self.tube = Tube()
45
		self.current = self.tube.map
46
47
	def test_GetPlatformsAtStationLine(self):
48
		with my_vcr.use_cassette('Detail-OXC-B.json'):
49
			platforms = self.tube.map.get(linecode="B", stationcode="OXC").platforms
50
			self.assertIsInstance( platforms, dict)
51
52
			first_platform = platforms[platforms.keys()[0]]
53
			self.assertIsInstance( first_platform, TubePlatform)
54
			self.assertEqual( first_platform.name, "Northbound - Platform 4")
55
56
class TestTubeTrains(unittest.TestCase):
57
	def setUp(self):
58
		self.tube = Tube()
59
	def test_GetTrainsOnPlatform(self):
60
		with my_vcr.use_cassette('Detail-OXC-B.json'):
61
			platforms = self.tube.map.get(linecode="B", stationcode="OXC").platforms
62
			first_platform = platforms[platforms.keys()[0]]
63
			self.assertIsInstance( first_platform.trains, dict)
64
65
			first_train = first_platform.trains[first_platform.trains.keys()[0]]
66
			self.assertIsInstance( first_train, TubeTrain )
67
68
			second_train = first_platform.trains[first_platform.trains.keys()[1]]
69
			self.assertEqual( first_train.leadingcar_id, "1030276" )
70
			self.assertEqual( second_train.destination, "Queen's Park")
71
72
73
class TestTubeMap(unittest.TestCase):
74
	def setUp(self):
75
		self.tube = Tube()
76
		self.current = self.tube.map
77
78
	def test_GetStation(self):
79
		with my_vcr.use_cassette('Detail-OXC-B.json'):
80
			self.assertIsInstance(self.tube.map.get(stationcode="OXC"), TubeStation)
81
			self.assertRaises(self.tube.map.get, stationcode="XXX")
82
			self.assertRaises(self.tube.map.get)
83
84
	def test_GetLine(self):
85
		with my_vcr.use_cassette('Detail-OXC-B.json'):
86
			self.assertIsInstance(self.tube.map.get(linecode="B"), TubeLine)
87
			self.assertRaises(self.tube.map.get, linecode="XXX")
88
			self.assertRaises(self.tube.map.get)
89
90
	def test_GetStationLine(self):
91
		with my_vcr.use_cassette('Detail-OXC-B.json'):
92
			self.assertIsInstance(self.tube.map.get(linecode="B", stationcode="OXC"), TubeStationLinePlatform)
93
		with my_vcr.use_cassette('Detail-OXC-B.json'):
94
			self.assertIsInstance(self.tube.map.get(linecode="B", stationcode="OXC").station, TubeStation)
95
		with my_vcr.use_cassette('Detail-OXC-B.json'):
96
			self.assertEqual(self.tube.map.get(linecode="B", stationcode="OXC").station.code, "OXC")
97
		with my_vcr.use_cassette('Detail-OXC-B.json'):
98
			self.assertIsInstance(self.tube.map.get(linecode="B", stationcode="OXC").line, TubeLine)
99
		with my_vcr.use_cassette('Detail-OXC-B.json'):
100
			self.assertEqual(self.tube.map.get(linecode="B", stationcode="OXC").line.code, "B")
101
102
	def test_FailGetStationLine(self):
103
		#district line does not go through OXC
104
		self.assertIsNone(self.tube.map.get(linecode="D", stationcode="OXC"))
105