Spaces:
Configuration error
Configuration error
''' | |
* Project : Screenipy | |
* Author : Pranjal Joshi | |
* Created : 29/04/2021 | |
* Description : Automated Test Script for Screenipy | |
''' | |
import pytest | |
import sys | |
import os | |
import numpy as np | |
import pandas as pd | |
import configparser | |
import requests | |
import json | |
import platform | |
sys.path.append(os.path.abspath('../src')) | |
import classes.ConfigManager as ConfigManager | |
from classes.Changelog import changelog | |
from screenipy import * | |
last_release = 0 | |
configManager = ConfigManager.tools() | |
# Generate default configuration if not exist | |
def test_generate_default_config(mocker, capsys): | |
mocker.patch('builtins.input', side_effect=['5','0', '\n']) | |
with pytest.raises(SystemExit): | |
configManager.setConfig(ConfigManager.parser, default=True) | |
out, err = capsys.readouterr() | |
assert err == '' | |
def test_if_release_version_increamented(): | |
global last_release | |
r = requests.get( | |
"https://api.github.com/repos/pranjal-joshi/Screeni-py/releases/latest") | |
last_release = float(r.json()['tag_name']) | |
assert float(VERSION) > last_release | |
def test_option_0(mocker): | |
try: | |
mocker.patch('builtins.input', side_effect=['0', TEST_STKCODE, 'y']) | |
main(testing=True) | |
assert len(screenResults) == 1 | |
except StopIteration: | |
pass | |
def test_option_1(mocker): | |
try: | |
mocker.patch('builtins.input', side_effect=['5', '1', 'y']) | |
main(testing=True) | |
assert len(screenResults) > 0 | |
except StopIteration: | |
pass | |
def test_option_2(mocker): | |
try: | |
mocker.patch('builtins.input', side_effect=['5', '2', 'y']) | |
main(testing=True) | |
assert len(screenResults) > 0 | |
except StopIteration: | |
pass | |
def test_option_3(mocker): | |
try: | |
mocker.patch('builtins.input', side_effect=['5', '3', 'y']) | |
main(testing=True) | |
assert len(screenResults) > 0 | |
except StopIteration: | |
pass | |
def test_option_4(mocker): | |
try: | |
mocker.patch('builtins.input', side_effect=['5', '4', '7', 'y']) | |
main(testing=True) | |
assert len(screenResults) > 0 | |
except StopIteration: | |
pass | |
def test_option_5(mocker): | |
try: | |
mocker.patch('builtins.input', side_effect=['5', '5', '30', '70']) | |
main(testing=True) | |
assert len(screenResults) > 0 | |
except StopIteration: | |
pass | |
def test_option_6(mocker): | |
try: | |
mocker.patch('builtins.input', side_effect=['5', '6', '1', 'y']) | |
main(testing=True) | |
assert len(screenResults) > 0 | |
except StopIteration: | |
pass | |
def test_option_7(mocker): | |
try: | |
mocker.patch('builtins.input', side_effect=['5', '7', '1', '7', 'y']) | |
main(testing=True) | |
assert len(screenResults) > 0 | |
except StopIteration: | |
pass | |
def test_option_8(mocker, capsys): | |
try: | |
mocker.patch('builtins.input', side_effect=['5', | |
'8', | |
str(configManager.period), | |
str(configManager.daysToLookback), | |
str(configManager.duration), | |
str(configManager.minLTP), | |
str(configManager.maxLTP), | |
str(configManager.volumeRatio), | |
str(configManager.consolidationPercentage), | |
'y', | |
'y', | |
]) | |
with pytest.raises((SystemExit, configparser.DuplicateSectionError)): | |
main(testing=True) | |
out, err = capsys.readouterr() | |
assert err == 0 or err == '' | |
except StopIteration: | |
pass | |
def test_option_9(): | |
configManager.getConfig(ConfigManager.parser) | |
assert configManager.duration is not None | |
assert configManager.period is not None | |
assert configManager.consolidationPercentage is not None | |
def test_option_12(mocker, capsys): | |
try: | |
mocker.patch('builtins.input', side_effect=['5','12']) | |
with pytest.raises(SystemExit): | |
main(testing=True) | |
out, err = capsys.readouterr() | |
assert err == '' | |
except StopIteration: | |
pass | |
def test_option_14(mocker): | |
try: | |
mocker.patch('builtins.input', side_effect=['14', '0', 'y']) | |
main(testing=True) | |
assert len(screenResults) > 0 | |
except StopIteration: | |
pass | |
def test_ota_updater(): | |
try: | |
OTAUpdater.checkForUpdate(proxyServer, VERSION) | |
assert ( | |
"exe" in OTAUpdater.checkForUpdate.url or "bin" in OTAUpdater.checkForUpdate.url) | |
except StopIteration: | |
pass | |
def test_release_readme_urls(): | |
global last_release | |
f = open('../src/release.md', 'r') | |
contents = f.read() | |
f.close() | |
failUrl = [f"https://github.com/pranjal-joshi/Screeni-py/releases/download/{last_release}/screenipy.bin", | |
f"https://github.com/pranjal-joshi/Screeni-py/releases/download/{last_release}/screenipy.exe"] | |
passUrl = [f"https://github.com/pranjal-joshi/Screeni-py/releases/download/{VERSION}/screenipy.bin", | |
f"https://github.com/pranjal-joshi/Screeni-py/releases/download/{VERSION}/screenipy.exe"] | |
for url in failUrl: | |
assert not url in contents | |
for url in passUrl: | |
assert url in contents | |
def test_if_changelog_version_changed(): | |
global last_release | |
v = changelog.split(']')[-2].split('[')[-1] | |
assert float(v) > float(last_release) | |