diff --git a/stix2/base.py b/stix2/base.py index 3ff01d98..a4f3f03b 100644 --- a/stix2/base.py +++ b/stix2/base.py @@ -103,7 +103,9 @@ def _check_properties_dependency(self, list_of_properties, list_of_dependent_pro failed_dependency_pairs = [] for p in list_of_properties: for dp in list_of_dependent_properties: - if not self.get(p) and self.get(dp): + if p not in self and dp in self: + failed_dependency_pairs.append((p, dp)) + elif p in self and (self[p] is None or self[p] is False) and dp in self and self[dp] is not None: failed_dependency_pairs.append((p, dp)) if failed_dependency_pairs: raise DependentPropertiesError(self.__class__, failed_dependency_pairs) diff --git a/stix2/test/v21/test_location.py b/stix2/test/v21/test_location.py index 5d3eab8a..e5d3f862 100644 --- a/stix2/test/v21/test_location.py +++ b/stix2/test/v21/test_location.py @@ -377,3 +377,48 @@ def test_bing_map_url_multiple_props_and_long_lat_provided(): loc_url = loc.to_maps_url("Bing Maps") assert loc_url == expected_url + + +def test_bing_map_url_for_0_long_lat(): + expected_url = "https://bing.com/maps/default.aspx?where1=0.0%2C0.0&lvl=16" + + loc = stix2.v21.Location( + region="Gulf of Guinea", + country="International waters", + street_address="0°N, 0°E – Null Island", + latitude=0.0, + longitude=0.0, + ) + + loc_url = loc.to_maps_url("Bing Maps") + assert loc_url == expected_url + + +def test_bing_map_url_for_0_long(): + expected_url = "https://bing.com/maps/default.aspx?where1=0.0%2C39.668&lvl=16" + + loc = stix2.v21.Location( + region="Eastern Africa", + country="Kenya", + street_address="0°N, 39.668°E", + latitude=0.0, + longitude=39.668, + ) + + loc_url = loc.to_maps_url("Bing Maps") + assert loc_url == expected_url + + +def test_bing_map_url_for_0_lat(): + expected_url = "https://bing.com/maps/default.aspx?where1=51.477%2C0.0&lvl=16" + + loc = stix2.v21.Location( + region="Western Europe", + country="United Kingdom", + street_address="Royal Observatory, Blackheath Ave, Greenwich, London SE10 8XJ, United Kingdom", + latitude=51.477, + longitude=0.0, + ) + + loc_url = loc.to_maps_url("Bing Maps") + assert loc_url == expected_url