A lightweight testing tool with test report functionality
Project description
xayah
A lightweight testing tool with test report functionality
Table of contents
General info
Xayah is used to test and generate report for python applications. It is built to combine a testing tool with test report functionality. It allows testing modules and generate a test report in JSON format
test suite example:
from xayah import TestSuite, TestResult
def add(a, b):
return a + b
@TestSuite.init
class TestAdd:
def test_add(self):
assert add(2, 3) == 5
# generating a test report
TestAdd.run_test_cases()
report = TestResult().create_test_result()
Installation
Xayah is available on PyPI:
python -m pip install xayah
Documentation
Xayah's documentation can be found in readthedocs: https://xayah.readthedocs.io/en/latest/
Features
- adding title, description, severity levels, etc.
- test parametrization
- steps
- skipping tests
- generating test report
Usage
In order to generate report, the test class should be decorated with TestSuite.init method:
@TestSuite.init
class CheckTestCase:
def test_method(self):
assert 1 == 1
then all test method (with test prefix) of the tested class can be executed by calling run_test_cases method:
CheckTestCase.run_test_cases()
in order to created test result TestResult().create_test_result() method should be called:
result = TestResult().create_test_result()
then test result can be parsed in any format
Telegram_bot_example
Originally, xayah was built as a test report tool for telegram bots.
Here you can see the simple usage in telegram bot with selenium:
from aiogram import Bot, Dispatcher, executor, types
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from xayah import TestResult, TestSuite, TestCase
API_TOKEN = 'BOT TOKEN HERE'
# Initialize bot and dispatcher
bot = Bot(token=API_TOKEN)
dp = Dispatcher(bot)
@TestSuite.init
@TestSuite.title('Google main page')
class TestGoogle:
@TestCase.title('page title is Google')
def test_google(self):
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
driver.get('https://www.google.com/')
assert driver.title == 'Google', 'title is not google'
@dp.message_handler(commands=['test'])
async def test(message: types.Message):
webdriver.Chrome(service=Service(ChromeDriverManager().install()))
TestGoogle.run_test_cases()
result = TestResult().create_test_result()
test_suite = result.get(TestGoogle.__name__)
test_suite_title = test_suite.get('title')
test_case = test_suite.get('test_cases')[0]
test_case_title = test_case.get('title')
test_case_status = test_case.get('status')
text = f'<pre><b>{test_suite_title}:</b></pre>\n <pre>{test_case_title} - {test_case_status}</pre>'
await message.reply(text, parse_mode=types.ParseMode.HTML)
if __name__ == '__main__':
executor.start_polling(dp, skip_updates=True)
telegram bot's response:
Google main page:
page title is Google - passed
Future_work
Planned features:
- Console application
- Running xayah tests through console application
- JSON generation
- HTML page generation from the test report
- PDF page generation from the test report
- Integration with pytest
- Making telegram bot integration easier
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file xayah-0.0.8.tar.gz
.
File metadata
- Download URL: xayah-0.0.8.tar.gz
- Upload date:
- Size: 10.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.4.2 requests/2.27.1 setuptools/45.2.0 requests-toolbelt/0.8.0 tqdm/4.30.0 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8d3a26210f8ed7ab4c24c7f5da69dd6be0a9f21ed8e602eb1b82654314d9c84c |
|
MD5 | dc0972d4106b6e55b506c569b7f9d57b |
|
BLAKE2b-256 | db1933be33a64446ad7117bdb3fb8ded28158b28700f178355f6a32ba8332a0a |
File details
Details for the file xayah-0.0.8-py3-none-any.whl
.
File metadata
- Download URL: xayah-0.0.8-py3-none-any.whl
- Upload date:
- Size: 11.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.4.2 requests/2.27.1 setuptools/45.2.0 requests-toolbelt/0.8.0 tqdm/4.30.0 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6b7fa36f3148e191fa90cc26da84ff6f9c504c3ccb8d8b65ea676c1a56f0b5b3 |
|
MD5 | ae3853df1d8d6f4358e7417c54a09253 |
|
BLAKE2b-256 | fb55d2d346acb4f880f87816a794198e78048d9b017ba77656c877cdefca58a1 |