Exemplo n.º 1
0
def test_parse_to_config():
    """
        Checks that parameters gets parsed correctly to config
    """
    for platform in Configuration.cmdline_platform:
        for action in actions:
            sys.argv = ["", action, platform]
            Configuration.load_configuration("hb-downloader-settings.yaml")
            Configuration.parse_command_line()
            for platform_all in Configuration.cmdline_platform:
                # iterate even on non selected platforms
                for hb_platform in Configuration.cmdline_platform.get(
                        platform_all):
                    print("evaluating %s of %s while %s %s was selected" %
                          (hb_platform, platform_all, action, platform))
                    status = ConfigData.download_platforms.get(hb_platform)
                    # Every platform we selected must be activated
                    if platform_all == platform and status is not True:
                        print(("%s is not set to True while it should have "
                               "been for %s %s") %
                              (hb_platform, action, platform))
                        assert (False)
                    if platform_all != platform and status is not False:
                        print(("%s is not set to False while it should have "
                               "been for %s %s") %
                              (hb_platform, action, platform))
                        assert (False)
Exemplo n.º 2
0
def test_parse_to_config():
    """
        Checks that parameters gets parsed correctly to config
    """
    for platform in Configuration.cmdline_platform:
        for action in actions:
            sys.argv = ["", action, platform]
            Configuration.load_configuration("hb-downloader-settings.yaml")
            Configuration.parse_command_line()
            for platform_all in Configuration.cmdline_platform:
                # iterate even on non selected platforms
                for hb_platform in Configuration.cmdline_platform.get(
                        platform_all):
                    print("evaluating %s of %s while %s %s was selected" % (
                            hb_platform, platform_all, action, platform))
                    status = ConfigData.download_platforms.get(hb_platform)
                    # Every platform we selected must be activated
                    if platform_all == platform and status is not True:
                        print(("%s is not set to True while it should have "
                               "been for %s %s") %
                              (hb_platform, action, platform))
                        assert(False)
                    if platform_all != platform and status is not False:
                        print(("%s is not set to False while it should have "
                               "been for %s %s") %
                              (hb_platform, action, platform))
                        assert(False)
Exemplo n.º 3
0
def test_single_download_to_config():
    """
        Tests downloading a single product by product key
    """
    sys.argv = ["", "download-product", "ABCdeFGhIjKL"]
    Configuration.load_configuration("hb-downloader-settings.yaml")
    Configuration.parse_command_line()
    assert (ConfigData.action == "download-product")
    for platform in Configuration.cmdline_platform['all']:
        print("checking if %s is enabled as it should" % platform)
        assert (ConfigData.download_platforms.get(platform) is True)
    assert (ConfigData.download_product == 'ABCdeFGhIjKL')
Exemplo n.º 4
0
def test_simple_parse_to_config():
    """
        Tests a few predefined parameters, and check if they match the config
    """
    sys.argv = ["", "list", "games", "--platform", "windows", "linux"]
    Configuration.load_configuration("hb-downloader-settings.yaml")
    Configuration.parse_command_line()
    assert (ConfigData.action == "list")
    assert (ConfigData.download_platforms["linux"] is True)
    assert (ConfigData.download_platforms["windows"] is True)
    for platform in ["mac", "ebook", "audio", "asmjs"]:
        print("checking if %s is disabled as it should" % platform)
        assert (ConfigData.download_platforms.get(platform) is False)
Exemplo n.º 5
0
def test_simple_parse_to_config():
    """
        Tests a few predefined parameters, and check if they match the config
    """
    sys.argv = ["", "list", "games", "--platform", "windows", "linux"]
    Configuration.load_configuration("hb-downloader-settings.yaml")
    Configuration.parse_command_line()
    assert(ConfigData.action == "list")
    assert(ConfigData.download_platforms["linux"] is True)
    assert(ConfigData.download_platforms["windows"] is True)
    for platform in ["mac", "ebook", "audio", "asmjs"]:
        print("checking if %s is disabled as it should" % platform)
        assert(ConfigData.download_platforms.get(platform) is False)
Exemplo n.º 6
0
def test_single_url_to_config():
    """
        Tests downloading a product by product url which you'd find in your
        confirmation email
    """
    sys.argv = [
        "", "download-product",
        "https://www.humblebundle.com/?key=mNoPqRsTuVW&guard=ABCDEF"
    ]
    Configuration.load_configuration("hb-downloader-settings.yaml")
    Configuration.parse_command_line()
    assert (ConfigData.action == "download-product")
    for platform in Configuration.cmdline_platform['all']:
        print("checking if %s is enabled as it should" % platform)
        assert (ConfigData.download_platforms.get(platform) is True)
    assert (ConfigData.download_product == 'mNoPqRsTuVW')
Exemplo n.º 7
0
def test_parse_to_config():
    """
        Checks that parameters gets parsed correctly to config
    """
    test_platforms = Configuration.cmdline_platform.copy()
    test_platforms.pop('all', None)
    for action in ["download", "list"]:
        # testing 'all'
        sys.argv = ["", action, 'all']
        Configuration.load_configuration("hb-downloader-settings.yaml")
        Configuration.parse_command_line()
        for platform in Configuration.cmdline_platform['all']:
            print("checking if %s is enabled when 'all' is specified" %
                  platform)
            assert (ConfigData.download_platforms.get(platform) is True)

        # testing specific platforms except 'all'
        for platform in test_platforms:
            sys.argv = ["", action, platform]
            Configuration.load_configuration("hb-downloader-settings.yaml")
            Configuration.parse_command_line()
            for platform_all in test_platforms:
                # iterate even on non selected platforms
                for hb_platform in Configuration.cmdline_platform.get(
                        platform_all):
                    print("evaluating %s of %s while %s %s was selected" %
                          (hb_platform, platform_all, action, platform))
                    status = ConfigData.download_platforms.get(hb_platform)
                    # Every platform we selected must be activated
                    if platform_all == platform and status is not True:
                        print(("%s is not set to True while it should have "
                               "been for %s %s") %
                              (hb_platform, action, platform))
                        assert (False)
                    if platform_all != platform and status is not False:
                        print(("%s is not set to False while it should have "
                               "been for %s %s") %
                              (hb_platform, action, platform))
                        assert (False)
Exemplo n.º 8
0
from hb_downloader.humble_api.humble_api import HumbleApi
from hb_downloader.actions import Action

__author__ = "Brian Schkerke"
__copyright__ = "Copyright 2016 Brian Schkerke"
__license__ = "MIT"

print("Humble Bundle Downloader v%s" % ConfigData.VERSION)
print("This program is not affiliated nor endorsed by Humble Bundle, Inc.")
print("For any suggestion or bug report, please create an issue at:\n%s" %
      ConfigData.BUG_REPORT_URL)
print("")

# Load the configuration from the YAML file...
try:
    Configuration.load_configuration("/etc/hb_downloader.yaml")
except FileNotFoundError:
    print("Configuration File not found in /etc")
    print("Trying local instead...")
    Configuration.load_configuration("hb-downloader-settings.yaml")

Configuration.parse_command_line()
Configuration.dump_configuration()
Configuration.push_configuration()

validation_status, message = Configuration.validate_configuration()
if not validation_status:
    logger.display_message(False, "Error", message)
    exit(
        "Invalid configuration.  Please check your command line arguments and "
        "hb-downloader-settings.yaml.")
Exemplo n.º 9
0
# Assignment is in reverse order of priority.  Last file to exist is the one used.
if os.path.isfile(local_config_filename):
    final_config_filename = local_config_filename
if os.path.isfile(system_config_filename):
    final_config_filename = system_config_filename
if os.path.isfile(user_config_filename):
    final_config_filename = user_config_filename

if final_config_filename is None:
    exit("No configuration file found.\nLocations searched:\nUser: %s\nSystem: %s\nLocal: %s\n" %
        (user_config_filename, system_config_filename, local_config_filename))

# Load the configuration from the YAML file...
try:
    print("Loading configuration from %s" % final_config_filename)
    Configuration.load_configuration(final_config_filename)
    print("Configuration successfully loaded from %s" % final_config_filename)
except FileNotFoundError:
    exit("Configuration file was identified but could not be read.")

Configuration.parse_command_line()
Configuration.dump_configuration()
Configuration.push_configuration()

validation_status, message = Configuration.validate_configuration()
if not validation_status:
    logger.display_message(False, "Error", message)
    exit("Invalid configuration.  Please check your command line arguments and "
         "hb-downloader-settings.yaml.")

# Initialize the event handlers.
Exemplo n.º 10
0
from hb_downloader.actions import Action

__author__ = "Brian Schkerke"
__copyright__ = "Copyright 2016 Brian Schkerke"
__license__ = "MIT"


print("Humble Bundle Downloader v%s" % ConfigData.VERSION)
print("This program is not affiliated nor endorsed by Humble Bundle, Inc.")
print("For any suggestion or bug report, please create an issue at:\n%s" %
      ConfigData.BUG_REPORT_URL)
print("")

# Load the configuration from the YAML file...
try:
    Configuration.load_configuration("/etc/hb_downloader.yaml")
except FileNotFoundError:
    print("Configuration File not found in /etc")
    print("Trying local instead...")
    Configuration.load_configuration("hb-downloader-settings.yaml")

Configuration.parse_command_line()
Configuration.dump_configuration()
Configuration.push_configuration()

validation_status, message = Configuration.validate_configuration()
if not validation_status:
    logger.display_message(False, "Error", message)
    exit("Invalid configuration.  Please check your command line arguments and"
         "hb-downloader-settings.yaml.")