Exemple #1
0
def test_vars(capsys):
    """Test vars function of Info class."""
    era5info = info.Info('total_precipitation')
    era5info.vars()
    captured = capsys.readouterr()
    assert captured.out.split(' ')[-1].strip() == '2Dvars'
    del era5info, captured

    era5info = info.Info(850)
    era5info.vars()
    captured = capsys.readouterr()
    assert captured.out.split(' ')[-1].strip() == 'levels'
    del era5info, captured
Exemple #2
0
def test_vars(capsys):
    """Test vars function of Info class."""
    era5info = info.Info('total_precipitation')
    era5info.vars()
    captured = capsys.readouterr()
    assert '2Dvars' in captured.out
    assert 'land' in captured.out
    assert '3Dvars' not in captured.out
    del era5info, captured

    era5info = info.Info(850)
    era5info.vars()
    captured = capsys.readouterr()
    assert 'levels' in captured.out
    del era5info, captured
Exemple #3
0
def _run_info(args):
    # List dataset information
    era5info = einfo.Info(args.name)
    if era5info.infotype == "list":
        era5info.list()
        return True
    else:
        era5info.vars()
        return True
Exemple #4
0
def _execute(args):
    """Call to ERA-5 cli library."""
    # the info subroutine
    if args.command == "info":
        # List dataset information
        era5info = einfo.Info(args.name)
        if era5info.infotype == "list":
            era5info.list()
            return True
        else:
            era5info.vars()
            return True

    # the fetching subroutines
    else:
        # make list of years to be downloaded
        if not args.endyear:
            years = [args.startyear]
        else:
            assert (args.endyear >=
                    args.startyear), ('endyear should be >= startyear or None')
            years = list(range(args.startyear, args.endyear + 1))

        # set subroutine specific arguments for monthly and hourly fetch
        if args.command == "monthly":
            synoptic = args.synoptic
            statistics = None
        elif args.command == "hourly":
            statistics = args.statistics
            synoptic = None
        else:
            raise AttributeError('The command "{}" is not valid.'.format(
                args.command))

        # try to build and send download request
        era5 = efetch.Fetch(years,
                            months=args.months,
                            days=args.days,
                            hours=args.hours,
                            variables=args.variables,
                            outputformat=args.format,
                            outputprefix=args.outputprefix,
                            period=args.command,
                            ensemble=args.ensemble,
                            synoptic=synoptic,
                            statistics=statistics,
                            pressurelevels=args.levels,
                            threads=args.threads,
                            split=args.split)
        era5.fetch()
        return True
Exemple #5
0
def test_init(arg):
    """Test init function of Info class."""
    era5info = info.Info(arg)
    assert isinstance(era5info.infolist, list)
Exemple #6
0
def test_list(arg):
    """Test list function of Info class."""
    era5info = info.Info(arg)
    era5info.list()
    assert True
Exemple #7
0
def test_define_table_header(arg):
    """Test _define_table_header function of Info class."""
    era5info = info.Info(arg)
    era5info._define_table_header()
    assert isinstance(era5info.header, str)
Exemple #8
0
def test_list():
    """Test list function of Info class."""
    era5info = info.Info('levels')
    era5info.list()
    assert True