File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -40,7 +40,10 @@ def completed_at(self):
4040
4141 @property
4242 def distance (self ):
43- return self .activity .Lap [- 1 ].Track .Trackpoint [- 2 ].DistanceMeters .pyval
43+ distance_values = self .root .findall ('.//ns:DistanceMeters' , namespaces = {'ns' : namespace })
44+ if distance_values :
45+ return distance_values [- 1 ]
46+ return 0
4447
4548 @property
4649 def distance_units (self ):
Original file line number Diff line number Diff line change 1+ from StringIO import StringIO
12import unittest
3+
24from tcxparser import TCXParser
35
46
@@ -71,5 +73,30 @@ def test_ascent_is_correct(self):
7173 def test_descent_is_correct (self ):
7274 self .assertAlmostEqual (self .tcx .descent , 166.307128903 )
7375
76+
77+ class BugTest (unittest .TestCase ):
78+
79+ def test_single_trackpoint_in_track_is_ok (self ):
80+ "https://github.com/vkurup/python-tcxparser/issues/9"
81+ xml = """
82+ <TrainingCenterDatabase xmlns="http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2">
83+ <Activities>
84+ <Activity>
85+ <Lap>
86+ <Track>
87+ <Trackpoint>
88+ <DistanceMeters>5</DistanceMeters>
89+ </Trackpoint>
90+ </Track>
91+ </Lap>
92+ </Activity>
93+ </Activities>
94+ </TrainingCenterDatabase>
95+ """
96+ tcx_file = StringIO (xml )
97+ tcx = TCXParser (tcx_file )
98+ self .assertEqual (tcx .distance , 5 )
99+
100+
74101if __name__ == '__main__' :
75102 unittest .main ()
You can’t perform that action at this time.
0 commit comments