Reports refactoring & improving

This commit is contained in:
Soxoj
2021-01-16 00:50:04 +03:00
parent 2d4ef5d147
commit 9b2f8f20ed
13 changed files with 302 additions and 232 deletions
+23 -3
View File
@@ -1,11 +1,14 @@
from _pytest.mark import Mark
from mock import Mock
import glob
import logging
import os
import pytest
from _pytest.mark import Mark
from mock import Mock
from maigret.sites import MaigretDatabase, MaigretSite
JSON_FILE = os.path.join(os.path.dirname(os.path.realpath(__file__)), '../maigret/resources/data.json')
CUR_PATH = os.path.dirname(os.path.realpath(__file__))
JSON_FILE = os.path.join(CUR_PATH, '../maigret/resources/data.json')
empty_mark = Mark('', [], {})
@@ -17,8 +20,25 @@ def pytest_collection_modifyitems(items):
items.sort(key=by_slow_marker, reverse=False)
def get_test_reports_filenames():
return glob.glob(os.path.join('report_*'), recursive=False)
def remove_test_reports():
reports_list = get_test_reports_filenames()
for f in reports_list: os.remove(f)
logging.error(f'Removed test reports {reports_list}')
@pytest.fixture(scope='session')
def default_db():
db = MaigretDatabase().load_from_file(JSON_FILE)
return db
@pytest.fixture(autouse=True)
def reports_autoclean():
remove_test_reports()
yield
remove_test_reports()
+1 -1
View File
@@ -1,6 +1,6 @@
"""Maigret activation test functions"""
from mock import Mock
import pytest
from mock import Mock
from maigret.activation import ParsingActivator
+6 -7
View File
@@ -1,11 +1,10 @@
"""Maigret main module test functions"""
import asyncio
from mock import Mock
import pytest
from mock import Mock
from maigret.sites import MaigretDatabase, MaigretSite
from maigret.maigret import self_check
from maigret.sites import MaigretDatabase, MaigretSite
EXAMPLE_DB = {
'engines': {
@@ -54,7 +53,7 @@ def test_self_check_db_positive_disable():
assert db.sites[0].disabled == False
loop = asyncio.get_event_loop()
loop.run_until_complete(self_check(db, db.sites_dict, logger))
loop.run_until_complete(self_check(db, db.sites_dict, logger, silent=True))
assert db.sites[0].disabled == True
@@ -70,7 +69,7 @@ def test_self_check_db_positive_enable():
assert db.sites[0].disabled == True
loop = asyncio.get_event_loop()
loop.run_until_complete(self_check(db, db.sites_dict, logger))
loop.run_until_complete(self_check(db, db.sites_dict, logger, silent=True))
assert db.sites[0].disabled == False
@@ -85,7 +84,7 @@ def test_self_check_db_negative_disabled():
assert db.sites[0].disabled == True
loop = asyncio.get_event_loop()
loop.run_until_complete(self_check(db, db.sites_dict, logger))
loop.run_until_complete(self_check(db, db.sites_dict, logger, silent=True))
assert db.sites[0].disabled == True
@@ -101,6 +100,6 @@ def test_self_check_db_negative_enabled():
assert db.sites[0].disabled == False
loop = asyncio.get_event_loop()
loop.run_until_complete(self_check(db, db.sites_dict, logger))
loop.run_until_complete(self_check(db, db.sites_dict, logger, silent=True))
assert db.sites[0].disabled == False
+45 -26
View File
@@ -1,14 +1,15 @@
"""Maigret reports test functions"""
from io import StringIO
import copy
import os
from io import StringIO
import xmind
from jinja2 import Template
from maigret.report import save_csv_report_to_file, genxmindfile, save_html_pdf_report
from maigret.report import generate_csv_report, generate_txt_report, save_xmind_report, save_html_report, \
save_pdf_report, generate_report_template, generate_report_context
from maigret.result import QueryResult, QueryStatus
EXAMPLE_RESULTS = {
'GitHub': {
'username': 'test',
@@ -56,23 +57,48 @@ SUPPOSED_INTERESTS = "Interests: photo <span class=\"text-muted\">(2)</span>, ne
SUPPOSED_GEO = "Geo: us <span class=\"text-muted\">(3)</span>"
def test_save_csv_report_to_file():
def test_generate_report_template():
report_template, css = generate_report_template(is_pdf=True)
assert isinstance(report_template, Template)
assert isinstance(css, str)
report_template, css = generate_report_template(is_pdf=False)
assert isinstance(report_template, Template)
assert css is None
def test_generate_csv_report():
csvfile = StringIO()
save_csv_report_to_file('test', EXAMPLE_RESULTS, csvfile)
generate_csv_report('test', EXAMPLE_RESULTS, csvfile)
csvfile.seek(0)
data = csvfile.readlines()
assert data == [
'username,name,url_main,url_user,exists,http_status\r\n',
'test,GitHub,https://www.github.com/,https://www.github.com/test,Claimed,200\r\n',
'username,name,url_main,url_user,exists,http_status\r\n',
'test,GitHub,https://www.github.com/,https://www.github.com/test,Claimed,200\r\n',
]
def test_generate_txt_report():
txtfile = StringIO()
generate_txt_report('test', EXAMPLE_RESULTS, txtfile)
txtfile.seek(0)
data = txtfile.readlines()
assert data == [
'https://www.github.com/test\n',
'Total Websites Username Detected On : 1',
]
def test_save_xmind_report():
filename = 'test_report.xmind'
genxmindfile(filename, 'test', EXAMPLE_RESULTS)
filename = 'report_test.xmind'
save_xmind_report(filename, 'test', EXAMPLE_RESULTS)
workbook = xmind.load(filename)
sheet = workbook.getPrimarySheet()
data = sheet.getData()
@@ -87,14 +113,9 @@ def test_save_xmind_report():
def test_html_report():
report_name = 'report_alexaimephotographycars.html'
try:
os.remove(report_name)
except:
pass
save_html_pdf_report(TEST,filename=report_name,filenamepdf=None)
assert os.path.exists(report_name)
report_name = 'report_test.html'
context = generate_report_context(TEST)
save_html_report(report_name, context)
report_text = open(report_name).read()
@@ -102,12 +123,10 @@ def test_html_report():
assert SUPPOSED_GEO in report_text
assert SUPPOSED_INTERESTS in report_text
def test_pdf_report():
report_name_pdf = 'report_alexaimephotographycars.pdf'
try:
os.remove(report_name_pdf)
except:
pass
save_html_pdf_report(TEST,filename=None,filenamepdf=report_name_pdf)
assert os.path.exists(report_name_pdf)
def test_pdf_report():
report_name = 'report_test.pdf'
context = generate_report_context(TEST)
save_pdf_report(report_name, context)
assert os.path.exists(report_name)