Source code for openpyxl.develop.stub

"""
Generate test stubs for Serialisable classes
"""
import argparse


stub = '''
from __future__ import absolute_import
# Copyright (c) 2010-2017 openpyxl
import pytest

from openpyxl.xml.functions import fromstring, tostring
from openpyxl.tests.helper import compare_xml

@pytest.fixture
def {clsname}():
    from ..{module} import {clsname}
    return {clsname}


class Test{clsname}:

    def test_ctor(self, {clsname}):
        {module} = {clsname}()
        xml = tostring({module}.to_tree())
        expected = """
        <root />
        """
        diff = compare_xml(xml, expected)
        assert diff is None, diff


    def test_from_xml(self, {clsname}):
        src = """
        <root />
        """
        node = fromstring(src)
        {module} = {clsname}.from_tree(node)
        assert {module} == {clsname}()
'''


[docs]def generate(clsname, module): return stub.format(clsname=clsname, module=module)
commands = argparse.ArgumentParser(description="Generate stub tests for Serialisable classes") commands.add_argument('clsname', help='Name of the class to be tested') commands.add_argument('--module', help='Name of the module to be tested', default="fut") if __name__ == "__main__": args = commands.parse_args() print(generate(args.clsname, args.module))