Skip to content

Commit b9df993

Browse files
Merge pull request #190 from tomasbedrich/trackable_type
Fix for loading trackables without a type
2 parents e57bd38 + 5ea5063 commit b9df993

File tree

7 files changed

+176
-7
lines changed

7 files changed

+176
-7
lines changed

pycaching/geo.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ def from_tile(cls, tile, tile_point=None):
113113
else:
114114
dx, dy = 0, 0
115115

116-
n = 2.0 ** tile.z
116+
n = 2.0**tile.z
117117
lon_deg = (tile.x + dx) / n * 360.0 - 180.0
118118
lat_rad = math.atan(math.sinh(math.pi * (1 - 2 * (tile.y + dy) / n)))
119119
lat_deg = math.degrees(lat_rad)
@@ -132,7 +132,7 @@ def to_tile(self, geocaching, zoom):
132132
lat_deg = self.latitude
133133
lon_deg = self.longitude
134134
lat_rad = math.radians(lat_deg)
135-
n = 2.0 ** zoom
135+
n = 2.0**zoom
136136
x = int((lon_deg + 180.0) / 360.0 * n)
137137
y = int((1.0 - math.log(math.tan(lat_rad) + (1 / math.cos(lat_rad))) / math.pi) / 2.0 * n)
138138
return Tile(geocaching, x, y, zoom)

pycaching/geocaching.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ def login(self, username=None, password=None):
144144
post = {"UsernameOrEmail": username, "Password": password, token_field_name: token_value}
145145

146146
# login to the site
147-
logging.debug("Submiting login form.")
147+
logging.debug("Submitting login form.")
148148
after_login_page = self._request(self._urls["login_page"], method="POST", data=post, login_check=False)
149149

150150
logging.debug("Checking the result.")

pycaching/trackable.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -152,8 +152,10 @@ def type(self):
152152
return self._type
153153

154154
@type.setter
155-
def type(self, type):
156-
self._type = type.strip()
155+
def type(self, type_):
156+
if type_ is not None:
157+
type_ = type_.strip()
158+
self._type = type_
157159

158160
def get_KML(self):
159161
"""Return the KML route of the trackable.
@@ -171,7 +173,7 @@ def load(self):
171173
This method is called automatically when you access a property which isn't yet filled in
172174
(so-called "lazy loading"). You don't have to call it explicitly.
173175
174-
:raise .LoadError: If trackable loading fails (probably because of not existing cache).
176+
:raise .LoadError: If trackable loading fails (probably because of not existing trackable).
175177
"""
176178
# pick url based on what info we have right now
177179
if hasattr(self, "url"):

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ dev = [
4141
"pytest-cov ~= 3.0",
4242
"betamax ~= 0.8",
4343
"betamax-serializers ~= 0.2",
44-
"black ~= 21.10b0",
44+
"black ~= 22.6.0",
4545
"flake8 ~= 4.0",
4646
"isort ~= 5.10"
4747
]

test/cassettes/trackable_load__existing_type.json

Lines changed: 77 additions & 0 deletions
Large diffs are not rendered by default.

test/cassettes/trackable_load__missing_type.json

Lines changed: 77 additions & 0 deletions
Large diffs are not rendered by default.

test/test_trackable.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,3 +146,16 @@ def test_get_KML(self):
146146
self.assertTrue("#tbTravelStyle" in kml)
147147
self.assertTrue("<visibility>1</visibility>" in kml)
148148
self.assertTrue("</Placemark></Document></kml>" in kml)
149+
150+
151+
class TestIssues(LoggedInTest):
152+
def test_load__type(self):
153+
with self.subTest("existing"):
154+
trackable = Trackable(self.gc, "TB1KEZ9")
155+
with self.recorder.use_cassette("trackable_load__existing_type"):
156+
self.assertEqual("SwedenHawk Geocoin", trackable.type)
157+
158+
with self.subTest("missing"):
159+
trackable = Trackable(self.gc, "TB7WZD9")
160+
with self.recorder.use_cassette("trackable_load__missing_type"):
161+
self.assertEqual(None, trackable.type)

0 commit comments

Comments
 (0)