1import pytest 2 3from astral import Observer 4 5 6class TestObserver: 7 def test_default(self): 8 obs = Observer() 9 assert obs.latitude == 51.4733 10 assert obs.longitude == -0.0008333 11 assert obs.elevation == 0.0 12 13 def test_from_float(self): 14 obs = Observer(1, 1, 1) 15 assert obs.latitude == 1.0 16 assert obs.longitude == 1.0 17 assert obs.elevation == 1.0 18 19 def test_from_string(self): 20 obs = Observer("1", "2", "3") 21 assert obs.latitude == 1.0 22 assert obs.longitude == 2.0 23 assert obs.elevation == 3.0 24 25 def test_from_dms(self): 26 obs = Observer("24°N", "22°30'S", "3") 27 assert obs.latitude == 24.0 28 assert obs.longitude == -22.5 29 assert obs.elevation == 3.0 30 31 def test_bad_latitude(self): 32 with pytest.raises(ValueError): 33 Observer("o", 1, 1) 34 35 def test_bad_longitude(self): 36 with pytest.raises(ValueError): 37 Observer(1, "o", 1) 38 39 def test_bad_elevation(self): 40 with pytest.raises(ValueError): 41 Observer(1, 1, "o") 42 43 def test_latitude_outside_limits(self): 44 obs = Observer(90.1, 0, 0) 45 assert obs.latitude == 90.0 46 obs = Observer(-90.1, 0, 0) 47 assert obs.latitude == -90.0 48 49 def test_longitude_outside_limits(self): 50 obs = Observer(0, 180.1, 0) 51 assert obs.longitude == 180.0 52 obs = Observer(0, -180.1, 0) 53 assert obs.longitude == -180.0 54