Exemple #1
0
def test_invalid_config():
    remove_config_folder()
    c = config.Config(script=__file__, create=True)
    prepare_invalid_config_file(c)
    with pytest.raises(json.decoder.JSONDecodeError):
        c.read()
    remove_config_folder()
Exemple #2
0
def test_create_file():
    remove_config_folder()
    c = config.Config(script=__file__, create=True)
    c.read()

    assert os.path.exists(c._file_path)
    remove_config_folder()
Exemple #3
0
def test_valid_config_variable():
    remove_config_folder()
    c = config.Config(script=__file__, create=True)
    prepare_config_file(c)
    c.read()
    assert c.test
    remove_config_folder()
Exemple #4
0
def test_custom_cfg_dir_file():
    cfg_dir = os.path.join(os.path.dirname(__file__), 'config')
    cfg_file = 'config.json'
    remove_config_folder(cfg_dir)
    c = config.Config(script=__file__,
                      create=True,
                      cfg_dir=cfg_dir,
                      cfg_file=cfg_file)
    assert os.path.exists(os.path.join(cfg_dir, cfg_file))
    remove_config_folder(cfg_dir)
Exemple #5
0
"""
 Useful formatting functions for Time, Decimal, File Sizes, Strings, Temperature
"""
import datetime
from operator import itemgetter
from gpm import config

# Read config
c = config.Config(script=__file__, create=True)
c.read()


def time_now(ts_format=None):
    if ts_format is None:
        ts_format = "YYYYMMDDHHMISS"
    return datetime.datetime.now().strftime(c.ts_formats.get(ts_format))


def time_specific(ts, ts_format=None):
    if ts_format is None:
        ts_format = "YYYYMMDDHHMISS"
    return datetime.datetime.fromtimestamp(int(ts)).strftime(
        c.ts_formats.get(ts_format))


def fsize_pretty(size_in_bytes, return_size_only=False, unit=None):
    conversion = {
        'b': size_in_bytes,
        'kb': size_in_bytes / 1024,
        'mb': size_in_bytes / (1024**2),
        'gb': size_in_bytes / (1024**3),
Exemple #6
0
import os
import shutil
import json
from gpm import config

cfg_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'cfg')
cfg_file = 'config.json'
default_cfg_file = 'default.json'

cfg_file_path = os.path.join(cfg_dir, cfg_file)
default_cfg_file_path = os.path.join(cfg_dir, 'default.json')

if not os.path.exists(cfg_file_path):
    shutil.copy(default_cfg_file_path, cfg_file_path)

cfg = config.Config(script=__file__, cfg_dir=cfg_dir, cfg_file=cfg_file)
cfg.read()


def dburi():
    uri = "{DB_TYPE}+{DB_DRIVER}://{DB_USER}:{DB_PASS}@{DB_HOST}:{DB_PORT}/{DB_NAME}"
    cfg.SQLALCHEMY_DATABASE_URI = uri.format(DB_TYPE=cfg.DB['TYPE'],
                                             DB_DRIVER=cfg.DB['DRIVER'],
                                             DB_USER=cfg.DB['USER'],
                                             DB_PASS=cfg.DB['PASS'],
                                             DB_HOST=cfg.DB['HOST'],
                                             DB_PORT=cfg.DB['PORT'],
                                             DB_NAME=cfg.DB['NAME'])


dburi()
Exemple #7
0
def test_custom_cfg_file():
    cfg_file = 'config.json'
    remove_config_folder()
    c = config.Config(script=__file__, create=True, cfg_file=cfg_file)
    assert os.path.exists(os.path.join(c._dir, cfg_file))
    remove_config_folder()
Exemple #8
0
def test_custom_cfg_dir_invalid():
    cfg_dir = '/config'
    with pytest.raises(PermissionError):
        c = config.Config(script=__file__, create=True, cfg_dir=cfg_dir)
Exemple #9
0
def test_file_does_not_exist():
    remove_config_folder()
    c = config.Config(script=__file__)
    with pytest.raises(FileNotFoundError):
        c.read()
    remove_config_folder()
Exemple #10
0
def test_no_param():
    remove_config_folder()
    c = config.Config(script='')
    with pytest.raises(FileNotFoundError):
        c.read()
    remove_config_folder()
Exemple #11
0
from bs4 import BeautifulSoup
import os
import re
import shutil
import requests
import argparse
import time
from gpm import logging, config, formatting

c = config.Config(script=__file__)
c.read()


def sanitize_string(input_str):
    output_str = input_str.lower().replace(' ', '_').rstrip('.')
    output_str = re.sub(r'[!@#$%^&*()\[\]{};:/<>?\\|`~\-=+\'\"]', '',
                        output_str)
    return output_str


def do(site, download_dir=None):
    err = 0

    log.info('site: {}'.format(site))

    if download_dir is None:
        download_dir = os.path.dirname(os.path.abspath(__file__))

    log.info('download_dir: {}'.format(download_dir))

    total_downloaded = 0