# coding=utf-8 from earthdiagnostics.diagnostic import Diagnostic from unittest import TestCase class TestDiagnostic(TestCase): class MockDiag(Diagnostic): alias = 'mockdiag' def setUp(self): self.diagnostic = Diagnostic(None) Diagnostic.register(TestDiagnostic.MockDiag) def test_register(self): with self.assertRaises(ValueError): Diagnostic.register(str) with self.assertRaises(ValueError): Diagnostic.register(Diagnostic) def test_get_diagnostic(self): self.assertIsNone(Diagnostic.get_diagnostic('none')) self.assertIs(TestDiagnostic.MockDiag, Diagnostic.get_diagnostic('mockdiag')) def test_generate_jobs(self): with self.assertRaises(NotImplementedError): Diagnostic.generate_jobs(None, ['']) def test_compute(self): with self.assertRaises(NotImplementedError): self.diagnostic.compute() def test_str(self): self.assertEquals('Developer must override base class __str__ method', str(self.diagnostic))