Browse Source

added code coverage. added model creation tests

Dimitri Korsch 4 years ago
parent
commit
1aa53c3b72

+ 21 - 0
.coveragerc

@@ -0,0 +1,21 @@
+[run]
+source = cvmodelz
+
+[report]
+
+# Regexes for lines to exclude from consideration
+exclude_lines =
+	# Have to re-enable the standard pragma
+	pragma: no cover
+
+	# Don't complain if tests don't hit defensive assertion code:
+	raise AssertionError
+	raise NotImplementedError
+	pass
+
+	# Don't complain if non-runnable code isn't run:
+	if 0:
+	if __name__ == .__main__.:
+
+omit:
+	tests/*

+ 5 - 0
Makefile

@@ -16,3 +16,8 @@ get_version:
 
 run_tests:
 	python tests/main.py
+
+run_coverage:
+	@coverage run tests/main.py
+	coverage html
+	coverage report -m

+ 2 - 2
cvmodelz/models/factory.py

@@ -63,13 +63,13 @@ class ModelFactory(abc.ABC):
 		if model_cls in cls.supported["chainer"]:
 			if "pretrained_model" not in kwargs:
 				kwargs["pretrained_model"] = None
-			kwargs.pop("input_size")
+			kwargs.pop("input_size", None)
 
 		elif model_cls in cls.supported["chainercv2"]:
 			if "pretrained" not in kwargs:
 				kwargs["pretrained"] = False
 
-			input_size = kwargs.pop("input_size")
+			input_size = kwargs.pop("input_size", None)
 			return ModelWrapper(model_cls(*args, **kwargs), input_size=input_size)
 
 		return model_cls(*args, **kwargs)

+ 4 - 0
tests/model_tests/__init__.py

@@ -0,0 +1,4 @@
+from model_tests.factory_tests import *
+from model_tests.pretrained_tests import *
+from model_tests.wrapper_tests import *
+

+ 14 - 0
tests/model_tests/factory_tests.py

@@ -0,0 +1,14 @@
+import unittest
+
+from cvmodelz.models import ModelFactory
+
+
+class FactoryTests(unittest.TestCase):
+
+	def test_model_creation(self):
+		for key in ModelFactory.get_all_models():
+			msg = f"Creating {key}..."
+			print(msg)
+			model = ModelFactory.new(key)
+			print("\033[A{}\033[A".format(" "*len(msg)))
+			self.assertIsNotNone(model)

+ 8 - 0
tests/model_tests/pretrained_tests.py

@@ -0,0 +1,8 @@
+import unittest
+
+from cvmodelz.models.pretrained import *
+
+class PretrainedTests(unittest.TestCase):
+
+	def test_foo(self):
+		self.assertTrue(1)

+ 9 - 0
tests/model_tests/wrapper_tests.py

@@ -0,0 +1,9 @@
+import unittest
+
+from cvmodelz.models.wrapper import ModelWrapper
+
+
+class WrapperTests(unittest.TestCase):
+
+	def test_foo(self):
+		self.assertTrue(1)