test_diagnostic.py 1.05 KB
Newer Older
# 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))