improve platform independence (#296)

* add os.devnull for platform independence

fixes #288

* add test for soft_barcode

* open devnull as binary

* add version identifier to pickle
This commit is contained in:
Patrick Kanzler 2018-05-15 01:03:07 +02:00 committed by GitHub
parent 6fb23d6826
commit 6c94f88c24
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 26 additions and 6 deletions

View File

@ -8,12 +8,13 @@ import six
import yaml import yaml
from tempfile import gettempdir from tempfile import gettempdir
import platform
logging.basicConfig() logging.basicConfig()
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
pickle_dir = environ.get('ESCPOS_CAPABILITIES_PICKLE_DIR', gettempdir()) pickle_dir = environ.get('ESCPOS_CAPABILITIES_PICKLE_DIR', gettempdir())
pickle_path = path.join(pickle_dir, 'capabilities.pickle') pickle_path = path.join(pickle_dir, '{v}.capabilities.pickle'.format(v=platform.python_version()))
capabilities_path = environ.get( capabilities_path = environ.get(
'ESCPOS_CAPABILITIES_FILE', 'ESCPOS_CAPABILITIES_FILE',
path.join(path.dirname(__file__), 'capabilities.json')) path.join(path.dirname(__file__), 'capabilities.json'))

View File

@ -24,6 +24,8 @@ from re import match as re_match
import barcode import barcode
from barcode.writer import ImageWriter from barcode.writer import ImageWriter
import os
from .constants import ESC, GS, NUL, QR_ECLEVEL_L, QR_ECLEVEL_M, QR_ECLEVEL_H, QR_ECLEVEL_Q from .constants import ESC, GS, NUL, QR_ECLEVEL_L, QR_ECLEVEL_M, QR_ECLEVEL_H, QR_ECLEVEL_Q
from .constants import QR_MODEL_1, QR_MODEL_2, QR_MICRO, BARCODE_TYPES, BARCODE_HEIGHT, BARCODE_WIDTH from .constants import QR_MODEL_1, QR_MODEL_2, QR_MICRO, BARCODE_TYPES, BARCODE_HEIGHT, BARCODE_WIDTH
from .constants import BARCODE_FONT_A, BARCODE_FONT_B, BARCODE_FORMATS from .constants import BARCODE_FONT_A, BARCODE_FONT_B, BARCODE_FORMATS
@ -487,11 +489,12 @@ class Escpos(object):
barcode_class = barcode.get_barcode_class(barcode_type) barcode_class = barcode.get_barcode_class(barcode_type)
my_code = barcode_class(data, writer=image_writer) my_code = barcode_class(data, writer=image_writer)
my_code.write("/dev/null", { with open(os.devnull, "wb") as nullfile:
'module_height': module_height, my_code.write(nullfile, {
'module_width': module_width, 'module_height': module_height,
'text_distance': text_distance 'module_width': module_width,
}) 'text_distance': text_distance
})
# Retrieve the Pillow image and print it # Retrieve the Pillow image and print it
image = my_code.writer._image image = my_code.writer._image

View File

@ -0,0 +1,16 @@
#!/usr/bin/python
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
from __future__ import unicode_literals
import escpos.printer as printer
import pytest
def test_soft_barcode():
"""just execute soft_barcode
"""
instance = printer.Dummy()
instance.soft_barcode("ean8", "1234")