File size: 5,389 Bytes
9bf26a6 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 |
'''
* 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', encoding='utf-8')
# 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)
|