| 1 |  |  | # -*- coding: utf-8 -*- | 
            
                                                                                                            
                            
            
                                    
            
            
                | 2 |  |  | from __future__ import division, absolute_import, unicode_literals | 
            
                                                                                                            
                            
            
                                    
            
            
                | 3 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 4 |  |  | import datetime as dt | 
            
                                                                                                            
                            
            
                                    
            
            
                | 5 |  |  | import warnings | 
            
                                                                                                            
                            
            
                                    
            
            
                | 6 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 7 |  |  | import aacgmv2 | 
            
                                                                                                            
                            
            
                                    
            
            
                | 8 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 9 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 10 |  |  | class TestFutureDepWarning: | 
            
                                                                                                            
                            
            
                                    
            
            
                | 11 |  |  |     def setup(self): | 
            
                                                                                                            
                            
            
                                    
            
            
                | 12 |  |  |         # Initialize the routine to be tested | 
            
                                                                                                            
                            
            
                                    
            
            
                | 13 |  |  |         self.test_routine = None | 
            
                                                                                                            
                            
            
                                    
            
            
                | 14 |  |  |         self.test_args = [] | 
            
                                                                                                            
                            
            
                                    
            
            
                | 15 |  |  |         self.test_kwargs = {} | 
            
                                                                                                            
                            
            
                                    
            
            
                | 16 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 17 |  |  |     def teardown(self): | 
            
                                                                                                            
                            
            
                                    
            
            
                | 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 |  |  |     def setup(self): | 
            
                                                                                                            
                            
            
                                    
            
            
                | 40 |  |  |         self.dtime = dt.datetime(2015, 1, 1, 0, 0, 0) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 41 |  |  |         self.test_routine = None | 
            
                                                                                                            
                            
            
                                    
            
            
                | 42 |  |  |         self.test_args = [] | 
            
                                                                                                            
                            
            
                                    
            
            
                | 43 |  |  |         self.test_kwargs = {} | 
            
                                                                                                            
                            
            
                                    
            
            
                | 44 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 45 |  |  |     def teardown(self): | 
            
                                                                                                            
                            
            
                                    
            
            
                | 46 |  |  |         del self.dtime, self.test_routine, self.test_args, self.test_kwargs | 
            
                                                                                                            
                            
            
                                    
            
            
                | 47 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 48 |  |  |     def test_igrf_dipole_axis_warning(self): | 
            
                                                                                                            
                            
            
                                    
            
            
                | 49 |  |  |         """Test future deprecation warning for igrf_dipole_axis""" | 
            
                                                                                                            
                            
            
                                    
            
            
                | 50 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 51 |  |  |         self.test_routine = aacgmv2.deprecated.igrf_dipole_axis | 
            
                                                                                                            
                            
            
                                    
            
            
                | 52 |  |  |         self.test_args = [self.dtime] | 
            
                                                                                                            
                            
            
                                    
            
            
                | 53 |  |  |         self.test_future_dep_warning() | 
            
                                                                                                            
                                                                
            
                                    
            
            
                | 54 |  |  |  | 
            
                                                                        
                            
            
                                    
            
            
                | 55 |  |  |     def test_subsol_warning(self): | 
            
                                                                        
                            
            
                                    
            
            
                | 56 |  |  |         """Test future deprecation warning for subsol""" | 
            
                                                                        
                            
            
                                    
            
            
                | 57 |  |  |  | 
            
                                                                        
                            
            
                                    
            
            
                | 58 |  |  |         self.test_routine = aacgmv2.deprecated.subsol | 
            
                                                                        
                            
            
                                    
            
            
                | 59 |  |  |         self.test_args = [self.dtime.year, 1, 1.0] | 
            
                                                                        
                            
            
                                    
            
            
                | 60 |  |  |         self.test_future_dep_warning() | 
            
                                                                                                            
                            
            
                                    
            
            
                | 61 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 62 |  |  |     def test_gc2gd_lat(self): | 
            
                                                                                                            
                            
            
                                    
            
            
                | 63 |  |  |         """Test future deprecation warning for gc2gd_lat""" | 
            
                                                                                                            
                            
            
                                    
            
            
                | 64 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 65 |  |  |         self.test_routine = aacgmv2.deprecated.gc2gd_lat | 
            
                                                                                                            
                            
            
                                    
            
            
                | 66 |  |  |         self.test_args = [45.0] | 
            
                                                                                                            
                                                                
            
                                    
            
            
                | 67 |  |  |         self.test_future_dep_warning() | 
            
                                                        
            
                                    
            
            
                | 68 |  |  |  |