Source code for tofu.tests.tests03_openadas.test_03_core

"""
This module contains tests for tofu.geom in its structured version
"""

# Built-in
import os
import warnings
import shutil
import subprocess
from subprocess import PIPE
import itertools as itt

# Standard
import numpy as np
import matplotlib.pyplot as plt

# tofu-specific
from tofu import __version__
import tofu.openadas2tofu as tfoa

_here = os.path.abspath(os.path.dirname(__file__))
VerbHead = 'tofu.openadas2tofu.test_03_core'
_TOFU_USER = os.path.join(os.path.expanduser("~"), '.tofu')
_CUSTOM = os.path.dirname(os.path.dirname(os.path.dirname(_here)))
_CUSTOM = os.path.join(_CUSTOM, 'scripts', 'tofucustom.py')


#######################################################
#
#     Setup and Teardown
#
#######################################################

[docs]def setup_module(): print("Removing user ~/.tofu/ if any") if os.path.isdir(_TOFU_USER): shutil.rmtree(_TOFU_USER) # Recreating clean .tofu # out = subprocess.run(_CUSTOM, stdout=PIPE, stderr=PIPE) os.system('python '+_CUSTOM)
[docs]def teardown_module(): print("Removing user ~/.tofu/ if any") if os.path.isdir(_TOFU_USER): shutil.rmtree(_TOFU_USER)
####################################################### # # Creating Ves objects and testing methods # #######################################################
[docs]class Test01_openadas(object):
[docs] @classmethod def setup_class(cls): pass
[docs] @classmethod def setup(self): pass
[docs] def teardown(self): pass
[docs] @classmethod def teardown_class(cls): pass
[docs] def test01_search_online(self): # Search by searchstr out = tfoa.step01_search_online( 'ar+16 ADF15', verb=True, returnas=False, ) assert out is None out = tfoa.step01_search_online( 'ar+16 ADF11', verb=False, returnas=np.ndarray, ) assert isinstance(out, np.ndarray) # Search by wavelength lret = [None, str, np.ndarray] lverb = [True, False] lelement = [None, 'ar', ['ar', 'w'], ('w',)] lcharge = [None, 14, [15, 16], (16,)] lres = ['transition', 'file'] for comb in itt.product(lret, lverb, lelement, lcharge, lres): out = tfoa.step01_search_online_by_wavelengthA( lambmin=3.94, lambmax=4., returnas=comb[0], verb=comb[1], element=comb[2], charge=comb[3], resolveby=comb[4], ) assert out is comb[0] or isinstance(out, comb[0])
[docs] def test02_download(self): out = tfoa.step02_download( filename='/adf15/pec40][ar/pec40][ar_ic][ar16.dat', update=False, verb=True, returnas=False, ) assert out is None out = tfoa.step02_download( filename='/adf15/pec40][ar/pec40][ar_ic][ar16.dat', update=True, verb=False, returnas=str, ) assert isinstance(out, str) out = tfoa.step02_download_all( lambmin=3.94, lambmax=4, element='Mo', update=False, verb=True, ) assert out is None lf = [ '/adf15/pec40][ar/pec40][ar_ic][ar16.dat', '/adf11/scd74/scd74_ar.dat', '/adf15/pec40][w/pec40][w_ls][w64.dat', '/adf11/plt41/plt41_xe.dat', ] out = tfoa.step02_download_all( files=lf, update=False, verb=True, ) assert out is None out = tfoa.step02_download_all( searchstr='ar+16 ADF15', include_partial=False, update=False, verb=True, ) assert out is None
[docs] def test03_readfiles(self): out = tfoa.step03_read( '/adf15/pec40][ar/pec40][ar_ic][ar16.dat', ) assert isinstance(out, dict) out = tfoa.step03_read( 'adf11/plt41/plt41_xe.dat', ) assert isinstance(out, dict) out = tfoa.step03_read_all( element='ar', charge=16, typ1='adf15', lambmin=3.94, lambmax=4., ) assert isinstance(out, dict) out = tfoa.step03_read_all( element='ar', charge=16, typ1='adf11', typ2='scd', ) assert isinstance(out, dict) out = tfoa.step03_read_all( element='ar', charge=16, typ1='adf11', typ2='plt', ) assert isinstance(out, dict)
[docs] def test04_clear_downloads(self): tfoa.clear_downloads()