diff --git a/ci/test.sh b/ci/test.sh new file mode 100644 index 00000000..3b72dcf3 --- /dev/null +++ b/ci/test.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +python3 -m unittest discover -s ../ diff --git a/investing_bot_framework/__init__.py b/investing_bot_framework/__init__.py index e69de29b..df5df79d 100644 --- a/investing_bot_framework/__init__.py +++ b/investing_bot_framework/__init__.py @@ -0,0 +1,4 @@ +from investing_bot_framework.utils.version import get_version + +VERSION = (1, 0, 0, 'alpha', 0) + diff --git a/investing_bot_framework/tests/resources/standard_settings.py b/investing_bot_framework/tests/resources/standard_settings.py index 97e7135a..71c220d8 100644 --- a/investing_bot_framework/tests/resources/standard_settings.py +++ b/investing_bot_framework/tests/resources/standard_settings.py @@ -1,10 +1,49 @@ +import os from pathlib import Path -BOT_PROJECT_NAME = 'TEST_ALGORITHM' +BOT_PROJECT_NAME = 'bot' -BASE_DIR = str(Path(__file__).parent) +BOT_CONTEXT_CONFIGURATION = 'bot.configuration.context' -INSTALLED_DATA_PROVIDER_APPS = [] +# Change this when not in development, feature or hot-fix branch +DEBUG = int(os.environ.get('DEBUG', True)) -INSTALLED_STRATEGY_APPS = [] +BASE_DIR = str(Path(__file__).parent.parent) +LOG_FILE_NAME = 'log' + +LOG_DIR = '{}/logs'.format(BASE_DIR) + +LOG_PATH = "{}/{}.log".format(LOG_DIR, LOG_FILE_NAME) + +# if not os.path.isdir(LOG_DIR): +# os.mkdir(LOG_DIR) + +if DEBUG: + logging_level = "DEBUG" +else: + logging_level = "INFO" + +# Logging configuration +LOGGING = { + 'version': 1, + 'disable_existing_loggers': False, + 'formatters': { + 'standard': { + 'format': '%(levelname)s %(asctime)s - [thread: %(threadName)-4s %(name)s] %(message)s', + 'datefmt': '%Y-%m-%d %H:%M:%S' + } + }, + 'handlers': { + 'console': { + 'class': 'logging.StreamHandler', + 'formatter': 'standard', + }, + }, + 'loggers': { + '': { + 'level': logging_level, + 'handlers': ['console'], + }, + }, +} \ No newline at end of file diff --git a/investing_bot_framework/tests/utils/__init__.py b/investing_bot_framework/tests/utils/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/investing_bot_framework/tests/utils/test_version.py b/investing_bot_framework/tests/utils/test_version.py new file mode 100644 index 00000000..8195abfd --- /dev/null +++ b/investing_bot_framework/tests/utils/test_version.py @@ -0,0 +1,14 @@ +from unittest import TestCase +from investing_bot_framework.utils.version import get_version, get_complete_version, get_main_version + + +class Version(TestCase): + + def test(self): + self.assertIsNotNone(get_version()) + self.assertEqual(type(get_version()), str) + + version = (1, 0, 0, 'alpha', 0) + self.assertEqual(get_version(version), '1.0') + self.assertEqual(get_main_version(version), '1.0') + self.assertEqual(get_complete_version(version), version) diff --git a/investing_bot_framework/utils/__init__.py b/investing_bot_framework/utils/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/investing_bot_framework/utils/version.py b/investing_bot_framework/utils/version.py new file mode 100644 index 00000000..c908e667 --- /dev/null +++ b/investing_bot_framework/utils/version.py @@ -0,0 +1,25 @@ +def get_version(version=None): + version = get_complete_version(version) + main = get_main_version(version) + return main + + +def get_main_version(version=None): + """Return main version (X.Y[.Z]) from VERSION.""" + version = get_complete_version(version) + parts = 2 if version[2] == 0 else 3 + return '.'.join(str(x) for x in version[:parts]) + + +def get_complete_version(version=None): + """ + Return a tuple of the investing algorithm framework version. If version argument is non-empty, + check for correctness of the tuple provided. + """ + if version is None: + from investing_bot_framework import VERSION as version + else: + assert len(version) == 5 + assert version[3] in ('alpha', 'beta', 'rc', 'final') + + return version