Skip to content

Commit

Permalink
Merge branch 'agroapi_full_statement_coverage' into alertapi_test_cov…
Browse files Browse the repository at this point in the history
…erage
  • Loading branch information
tamasmagyar committed Apr 11, 2020
2 parents e54e908 + 8bde463 commit 51553b3
Show file tree
Hide file tree
Showing 7 changed files with 81 additions and 5 deletions.
4 changes: 2 additions & 2 deletions .coveragerc
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ exclude_lines =
pragma: no cover

# Don't complain about missing debug-only code:
def __repr__(self):
def __str__(self):
def __repr__
def __str__

# Don't complain if tests don't hit defensive assertion code:
raise AssertionError
Expand Down
1 change: 1 addition & 0 deletions CONTRIBUTORS.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ Testing
-------
* [Samuel Yap] (https://github.com/samuelyap)
* [Patrick Casbon] (https://github.com/patcas)
* [Tamas Magyar] (https://github.com/tamasmagyar)

Packaging and Distribution
--------------------------
Expand Down
2 changes: 1 addition & 1 deletion pyowm/agroapi10/enums.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ class SatelliteEnum:
def items(cls):
"""
All values for this enum
:return: list of str
:return: list of Satellite databoxes
"""
return [
Expand Down
11 changes: 10 additions & 1 deletion tests/unit/agroapi10/test_agro_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -182,6 +182,10 @@ def test_create_polygon(self):
result = instance.create_polygon(self.geopolygon, 'test name')
self.assertIsInstance(result, Polygon)

Polygon.name = None
result = instance.create_polygon(self.geopolygon)
self.assertIsInstance(result, Polygon)

def test_create_polygons_fails_with_wrong_inputs(self):
instance = self.factory(MockHttpClientOnePolygon)
with self.assertRaises(AssertionError):
Expand All @@ -201,7 +205,7 @@ def test_update_polygon(self):

def test_delete_polygon(self):
instance = self.factory(MockHttpClientOnePolygon)
result = instance.update_polygon(self.polygon)
result = instance.delete_polygon(self.polygon)
self.assertIsNone(result)
p = copy.deepcopy(self.polygon)
p.id = None
Expand Down Expand Up @@ -392,6 +396,11 @@ def test_search_satellite_imagery(self):
self.assertEqual(3, len(results))
self.assertTrue(all([i.preset == PresetEnum.EVI for i in results]))

results = instance.search_satellite_imagery('test_pol', 1480699083, 1480782083, ImageTypeEnum.PNG,
None, 10, 20, SatelliteEnum.SENTINEL_2.symbol, 0,
10, 90, 100)
self.assertEqual(8, len(results))

def test_repr(self):
instance = AgroManager('APIKey')
repr(instance)
42 changes: 42 additions & 0 deletions tests/unit/agroapi10/test_enums.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
import unittest

from pyowm.agroapi10.enums import PresetEnum, PaletteEnum, SatelliteEnum


class TestPresetEnum(unittest.TestCase):

def test_items(self):
preset_enum = PresetEnum()
items = preset_enum.items()

self.assertEqual(4, len(items))
self.assertEqual(sorted([preset_enum.TRUE_COLOR,
preset_enum.FALSE_COLOR,
preset_enum.NDVI,
preset_enum.EVI]),
sorted(items))


class TestSatelliteEnum(unittest.TestCase):

def test_items(self):
satellite_enum = SatelliteEnum()
items = satellite_enum.items()

self.assertEqual(2, len(items))
self.assertEqual([satellite_enum.LANDSAT_8, satellite_enum.SENTINEL_2],
items)


class TestPaletteEnum(unittest.TestCase):

def test_items(self):
palette_enum = PaletteEnum()
items = palette_enum.items()

self.assertEqual(4, len(items))
self.assertEqual(sorted([palette_enum.GREEN,
palette_enum.BLACK_AND_WHITE,
palette_enum.CONTRAST_SHIFTED,
palette_enum.CONTRAST_CONTINUOUS]),
sorted(items))
14 changes: 14 additions & 0 deletions tests/unit/agroapi10/test_imagery.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
import unittest
from datetime import datetime
from unittest.mock import patch

from pyowm.commons.image import Image, ImageTypeEnum
from pyowm.agroapi10.enums import PresetEnum, SatelliteEnum
from pyowm.agroapi10.imagery import MetaImage, SatelliteImage
Expand Down Expand Up @@ -93,3 +95,15 @@ def test_downloaded_on_fails_with_unknown_timeformat(self):

def test_repr(self):
repr(self.test_instance)

def test_init(self):
test_instance = SatelliteImage(TestMetaImage.test_instance, self.test_image)

self.assertFalse(hasattr(test_instance, '_downloaded_on'))

def test_persist(self):
with patch('builtins.open', unittest.mock.mock_open()) as mocked_open:
persists = self.test_instance.persist('filename')
assert persists is None

mocked_open.assert_called_once_with('filename', 'wb')
12 changes: 11 additions & 1 deletion tests/unit/agroapi10/test_search.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,10 +47,20 @@ def test_instantiation_fails_with_wrong_arguments(self):
self.assertRaises(AssertionError, SatelliteImagerySearchResultSet, 'my_polygon', [], None)

def test_instantiation(self):
self.assertEqual(12, len(self.test_instance.metaimages))
self.assertEqual(12, self.test_instance.__len__())
self.assertTrue(all([mi.stats_url is not None for mi in self.test_instance.metaimages if mi.preset in
[PresetEnum.EVI, PresetEnum.NDVI]]))

def test_empty_metaimages_init(self):
test_data = self.test_data[0]
for dictionary in ['image', 'stats', 'tile', 'data']:
for key in test_data[dictionary].keys():
test_data[dictionary][key] = None

test_data = [test_data]
test_instance = SatelliteImagerySearchResultSet('my_polygon', test_data, self.test_issuing_time)
self.assertFalse(len(test_instance.metaimages))

def test_issued_on_returning_different_formats(self):
self.assertEqual(self.test_instance.issued_on(timeformat='unix'),
self.test_issuing_time)
Expand Down

0 comments on commit 51553b3

Please sign in to comment.