Merge pull request #127 from python-escpos/fix/abstractbaseclass-metaclass

FIX abstractbaseclass in Escpos not properly loaded
This commit is contained in:
Patrick Kanzler 2016-04-14 00:02:28 +02:00
commit 471222eda9
2 changed files with 31 additions and 1 deletions

View File

@ -23,13 +23,13 @@ from .exceptions import *
from abc import ABCMeta, abstractmethod # abstract base class support from abc import ABCMeta, abstractmethod # abstract base class support
from escpos.image import EscposImage from escpos.image import EscposImage
@six.add_metaclass(ABCMeta)
class Escpos(object): class Escpos(object):
""" ESC/POS Printer object """ ESC/POS Printer object
This class is the abstract base class for an esc/pos-printer. The printer implementations are children of this This class is the abstract base class for an esc/pos-printer. The printer implementations are children of this
class. class.
""" """
__metaclass__ = ABCMeta
device = None device = None
def __init__(self, columns=32): def __init__(self, columns=32):

View File

@ -0,0 +1,30 @@
#!/usr/bin/python
"""verifies that the metaclass abc is properly used by Escpos
:author: `Patrick Kanzler <patrick.kanzler@fablab.fau.de>`_
:organization: `python-escpos <https://github.com/python-escpos>`_
:copyright: Copyright (c) 2016 Patrick Kanzler
:license: GNU GPL v3
"""
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
from __future__ import unicode_literals
from nose.tools import raises
import escpos.escpos as escpos
from abc import ABCMeta
@raises(TypeError)
def test_abstract_base_class_raises():
"""test whether the abstract base class raises an exception for Escpos"""
escpos.Escpos() # This call should raise TypeError because of abstractmethod _raw()
def test_abstract_base_class():
""" test whether Escpos has the metaclass ABCMeta """
assert issubclass(escpos.Escpos, object)
assert type(escpos.Escpos) is ABCMeta