mirror of
https://github.com/soxoj/maigret.git
synced 2026-05-06 14:08:59 +00:00
Reports refactoring & improving
This commit is contained in:
+23
-3
@@ -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,6 +1,6 @@
|
||||
"""Maigret activation test functions"""
|
||||
from mock import Mock
|
||||
import pytest
|
||||
from mock import Mock
|
||||
|
||||
from maigret.activation import ParsingActivator
|
||||
|
||||
|
||||
@@ -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
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user