Passed
Pull Request — main (#81)
by Angeline
04:17
created

TestDepAACGMV2Warning.test_igrf_dipole_axis_warning()   A

Complexity

Conditions 1

Size

Total Lines 6
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 4
dl 0
loc 6
rs 10
c 0
b 0
f 0
cc 1
nop 1
1
import datetime as dt
2
import warnings
3
4
import aacgmv2
5
6
7
class TestFutureDepWarning(object):
8
    """Unit tests for deprecation warnings."""
9
    def setup_method(self):
10
        """Create a clean test environment."""
11
        # Initialize the routine to be tested
12
        self.test_routine = None
13
        self.test_args = []
14
        self.test_kwargs = {}
15
16
    def teardown_method(self):
17
        """Clean up the test environment."""
18
        del self.test_routine, self.test_args, self.test_kwargs
19
20
    def test_future_dep_warning(self):
21
        """Test the implementation of FutureWarning for dupicate routines."""
22
        if self.test_routine is None:
23
            assert True
24
        else:
25
            with warnings.catch_warnings(record=True) as wout:
26
                # Cause all warnings to always be triggered.
27
                warnings.simplefilter("always")
28
29
                # Trigger a warning.
30
                self.test_routine(*self.test_args, **self.test_kwargs)
31
32
                # Verify some things
33
                assert len(wout) == 1
34
                assert issubclass(wout[-1].category, FutureWarning)
35
                assert "Duplicate routine" in str(wout[-1].message)
36
37
38
class TestDepAACGMV2Warning(TestFutureDepWarning):
39
    """Unit tests for AACGMV2 deprecation warnings."""
40
    def setup_method(self):
41
        """Create a clean test environment."""
42
        self.dtime = dt.datetime(2015, 1, 1, 0, 0, 0)
43
        self.test_routine = None
44
        self.test_args = []
45
        self.test_kwargs = {}
46
47
    def teardown_method(self):
48
        """Clean up the test environment."""
49
        del self.dtime, self.test_routine, self.test_args, self.test_kwargs
50
51
    def test_igrf_dipole_axis_warning(self):
52
        """Test future deprecation warning for igrf_dipole_axis."""
53
54
        self.test_routine = aacgmv2.deprecated.igrf_dipole_axis
55
        self.test_args = [self.dtime]
56
        self.test_future_dep_warning()
57
58
    def test_subsol_warning(self):
59
        """Test future deprecation warning for subsol."""
60
61
        self.test_routine = aacgmv2.deprecated.subsol
62
        self.test_args = [self.dtime.year, 1, 1.0]
63
        self.test_future_dep_warning()
64
65
    def test_gc2gd_lat(self):
66
        """Test future deprecation warning for gc2gd_lat."""
67
68
        self.test_routine = aacgmv2.deprecated.gc2gd_lat
69
        self.test_args = [45.0]
70
        self.test_future_dep_warning()
71