Files
report-print-send/printer_zpl2/tests/test_printing_label_zpl2.py
2022-09-01 11:04:57 +02:00

1191 lines
36 KiB
Python

# Copyright 2016 LasLabs Inc.
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
import logging
import mock
from odoo import exceptions
from odoo.tests.common import TransactionCase
_logger = logging.getLogger(__name__)
try:
import zpl2
except ImportError:
_logger.debug("Cannot `import zpl2`.")
model = "odoo.addons.base_report_to_printer.models.printing_server"
class TestPrintingLabelZpl2(TransactionCase):
def setUp(self):
super(TestPrintingLabelZpl2, self).setUp()
self.Model = self.env["printing.label.zpl2"]
self.ComponentModel = self.env["printing.label.zpl2.component"]
self.server = self.env["printing.server"].create({})
self.printer = self.env["printing.printer"].create(
{
"name": "Printer",
"server_id": self.server.id,
"system_name": "Sys Name",
"default": True,
"status": "unknown",
"status_message": "Msg",
"model": "res.users",
"location": "Location",
"uri": "URI",
}
)
self.label_vals = {
"name": "ZPL II Label",
"model_id": self.env.ref(
"base_report_to_printer.model_printing_printer"
).id,
}
self.component_vals = {"name": "ZPL II Label Component"}
def new_label(self, vals=None):
values = self.label_vals.copy()
if vals:
values.update(vals)
return self.Model.create(values)
def new_component(self, vals=None):
values = self.component_vals.copy()
if vals:
values.update(vals)
return self.ComponentModel.create(values)
def test_print_on_bad_model(self):
"""Check that printing on the bad model raises an exception"""
label = self.new_label()
with self.assertRaises(exceptions.UserError):
label.print_label(self.printer, label)
@mock.patch("%s.cups" % model)
def test_print_empty_label(self, cups):
"""Check that printing an empty label works"""
label = self.new_label()
label.print_label(self.printer, self.printer)
cups.Connection().printFile.assert_called_once()
def test_empty_label_contents(self):
"""Check contents of an empty label"""
label = self.new_label()
contents = label._generate_zpl2_data(self.printer).decode("utf-8")
self.assertEqual(
contents,
# Label start
"^XA\n"
# Print width
"^PW480\n"
# UTF-8 encoding
"^CI28\n"
# Label position
"^LH10,10\n"
# Recall last saved parameters
"^JUR\n"
# Label end
"^XZ",
)
def test_sublabel_label_contents(self):
"""Check contents of a sublabel label component"""
sublabel = self.new_label({"name": "Sublabel"})
data = "Some text"
self.new_component({"label_id": sublabel.id, "data": '"' + data + '"'})
label = self.new_label()
self.new_component(
{
"label_id": label.id,
"name": "Sublabel contents",
"component_type": "sublabel",
"sublabel_id": sublabel.id,
}
)
contents = label._generate_zpl2_data(self.printer).decode("utf-8")
self.assertEqual(
contents,
# Label start
"^XA\n"
# Print width
"^PW480\n"
# UTF-8 encoding
"^CI28\n"
# Label position
"^LH10,10\n"
# Sublabel component position
# Position 30x30 because the default values are :
# - 10x10 for the sublabel component in the main label
# - 10x10 for the sublabel in the sublabel component
# - 10x10 for the component in the sublabel
"^FO30,30"
# Sublabel component format
"^A0N,10,10"
# Sublabel component contents
"^FD{contents}"
# Sublabel component end
"^FS\n"
# Recall last saved parameters
"^JUR\n"
# Label end
"^XZ".format(contents=data),
)
def test_repeatable_component_label_fixed_contents(self):
"""Check contents of a repeatable label component
Check that a fixed value is repeated each time
"""
label = self.new_label(
{"model_id": self.env.ref("printer_zpl2.model_printing_label_zpl2").id}
)
data = "Some text"
self.new_component(
{
"label_id": label.id,
"data": '"' + data + '"',
"repeat": True,
"repeat_count": 3,
"repeat_offset_y": 15,
}
)
contents = label._generate_zpl2_data(label).decode("utf-8")
self.assertEqual(
contents,
# Label start
"^XA\n"
# Print width
"^PW480\n"
# UTF-8 encoding
"^CI28\n"
# Label position
"^LH10,10\n"
# First component position
"^FO10,10"
# First component format
"^A0N,10,10"
# First component contents
"^FD{contents}"
# First component end
"^FS\n"
# Second component position
"^FO10,25"
# Second component format
"^A0N,10,10"
# Second component contents
"^FD{contents}"
# Second component end
"^FS\n"
# Third component position
"^FO10,40"
# Third component format
"^A0N,10,10"
# Third component contents
"^FD{contents}"
# Third component end
"^FS\n"
# Recall last saved parameters
"^JUR\n"
# Label end
"^XZ".format(contents=data),
)
def test_repeatable_component_label_iterable_contents(self):
"""Check contents of a repeatable label component
Check that an iterable contents (list, tuple, etc.) is browsed
If the repeat_count is higher than the value length, all values are
displayed
"""
label = self.new_label(
{"model_id": self.env.ref("printer_zpl2.model_printing_label_zpl2").id}
)
data = ["First text", "Second text", "Third text"]
self.new_component(
{
"label_id": label.id,
"data": str(data),
"repeat": True,
"repeat_offset": 1,
"repeat_count": 3,
"repeat_offset_y": 15,
}
)
contents = label._generate_zpl2_data(label).decode("utf-8")
self.assertEqual(
contents,
# Label start
"^XA\n"
# Print width
"^PW480\n"
# UTF-8 encoding
"^CI28\n"
# Label position
"^LH10,10\n"
# First component position
"^FO10,10"
# First component format
"^A0N,10,10"
# First component contents
"^FD{contents[1]}"
# First component end
"^FS\n"
# Second component position
"^FO10,25"
# Second component format
"^A0N,10,10"
# Second component contents
"^FD{contents[2]}"
# Second component end
"^FS\n"
# Recall last saved parameters
"^JUR\n"
# Label end
"^XZ".format(contents=data),
)
def test_repeatable_component_label_iterable_offset(self):
"""Check contents of a repeatable label component with an offset
Check that an iterable contents (list, tuple, etc.) is browsed
If the repeat_count is higher than the value length, all values are
displayed
"""
label = self.new_label(
{"model_id": self.env.ref("printer_zpl2.model_printing_label_zpl2").id}
)
data = ["Text {value}".format(value=ind) for ind in range(20)]
self.new_component(
{
"label_id": label.id,
"data": str(data),
"repeat": True,
"repeat_offset": 10,
"repeat_count": 3,
"repeat_offset_y": 15,
}
)
contents = label._generate_zpl2_data(label).decode("utf-8")
self.assertEqual(
contents,
# Label start
"^XA\n"
# Print width
"^PW480\n"
# UTF-8 encoding
"^CI28\n"
# Label position
"^LH10,10\n"
# First component position
"^FO10,10"
# First component format
"^A0N,10,10"
# First component contents
"^FD{contents[10]}"
# First component end
"^FS\n"
# Second component position
"^FO10,25"
# Second component format
"^A0N,10,10"
# Second component contents
"^FD{contents[11]}"
# Second component end
"^FS\n"
# Third component position
"^FO10,40"
# Third component format
"^A0N,10,10"
# Third component contents
"^FD{contents[12]}"
# Third component end
"^FS\n"
# Recall last saved parameters
"^JUR\n"
# Label end
"^XZ".format(contents=data),
)
def test_repeatable_sublabel_contents(self):
"""Check contents of a repeatable sublabel label component"""
sublabel = self.new_label(
{
"name": "Sublabel",
"model_id": self.env.ref(
"printer_zpl2.model_printing_label_zpl2_component"
).id,
}
)
self.new_component(
{"label_id": sublabel.id, "name": "Components name", "data": "object.name"}
)
self.new_component(
{
"label_id": sublabel.id,
"name": "Components data",
"data": "object.data",
"origin_x": 50,
}
)
label = self.new_label(
{"model_id": self.env.ref("printer_zpl2.model_printing_label_zpl2").id}
)
self.new_component(
{"label_id": label.id, "name": "Label name", "data": "object.name"}
)
self.new_component(
{
"label_id": label.id,
"name": "Label components",
"component_type": "sublabel",
"origin_x": 15,
"origin_y": 30,
"data": "object.component_ids",
"sublabel_id": sublabel.id,
"repeat": True,
"repeat_count": 3,
"repeat_offset_y": 15,
}
)
contents = label._generate_zpl2_data(label).decode("utf-8")
self.assertEqual(
contents,
# Label start
"^XA\n"
# Print width
"^PW480\n"
# UTF-8 encoding
"^CI28\n"
# Label position
"^LH10,10\n"
# Label name component position
"^FO10,10"
# Label name component format
"^A0N,10,10"
# Label name component contents
"^FD{label.name}"
# Label name component end
"^FS\n"
# First component name component position
"^FO35,50"
# First component name component format
"^A0N,10,10"
# First component name component contents
"^FD{label.component_ids[0].name}"
# First component name component end
"^FS\n"
# First component data component position
"^FO75,50"
# First component data component format
"^A0N,10,10"
# First component data component contents
"^FD{label.component_ids[0].data}"
# First component data component end
"^FS\n"
# Second component name component position
"^FO35,65"
# Second component name component format
"^A0N,10,10"
# Second component name component contents
"^FD{label.component_ids[1].name}"
# Second component name component end
"^FS\n"
# Second component data component position
"^FO75,65"
# Second component data component format
"^A0N,10,10"
# Second component data component contents
"^FD{label.component_ids[1].data}"
# Second component data component end
"^FS\n"
# Recall last saved parameters
"^JUR\n"
# Label end
"^XZ".format(label=label),
)
def test_text_label_contents(self):
"""Check contents of a text label"""
label = self.new_label()
data = "Some text"
self.new_component({"label_id": label.id, "data": '"%s"' % data})
contents = label._generate_zpl2_data(self.printer).decode("utf-8")
self.assertEqual(
contents,
# Label start
"^XA\n"
# Print width
"^PW480\n"
# UTF-8 encoding
"^CI28\n"
# Label position
"^LH10,10\n"
# Component position
"^FO10,10"
# Component format
"^A0N,10,10"
# Component contents
"^FD{contents}"
# Component end
"^FS\n"
# Recall last saved parameters
"^JUR\n"
# Label end
"^XZ".format(contents=data),
)
def test_reversed_text_label_contents(self):
"""Check contents of a text label"""
label = self.new_label()
data = "Some text"
self.new_component(
{"label_id": label.id, "data": '"' + data + '"', "reverse_print": True}
)
contents = label._generate_zpl2_data(self.printer).decode("utf-8")
self.assertEqual(
contents,
# Label start
"^XA\n"
# Print width
"^PW480\n"
# UTF-8 encoding
"^CI28\n"
# Label position
"^LH10,10\n"
# Component position
"^FO10,10"
# Component format
"^A0N,10,10"
# Reverse print argument
"^FR"
# Component contents
"^FD{contents}"
# Component end
"^FS\n"
# Recall last saved parameters
"^JUR\n"
# Label end
"^XZ".format(contents=data),
)
def test_block_text_label_contents(self):
"""Check contents of a text label"""
label = self.new_label()
data = "Some text"
self.new_component(
{"label_id": label.id, "data": '"' + data + '"', "in_block": True}
)
contents = label._generate_zpl2_data(self.printer).decode("utf-8")
self.assertEqual(
contents,
# Label start
"^XA\n"
# Print width
"^PW480\n"
# UTF-8 encoding
"^CI28\n"
# Label position
"^LH10,10\n"
# Component position
"^FO10,10"
# Component format
"^A0N,10,10"
# Block definition
"^FB0,1,0,L,0"
# Component contents
"^FD{contents}"
# Component end
"^FS\n"
# Recall last saved parameters
"^JUR\n"
# Label end
"^XZ".format(contents=data),
)
def test_rectangle_label_contents(self):
"""Check contents of a rectangle label"""
label = self.new_label()
self.new_component({"label_id": label.id, "component_type": "rectangle"})
contents = label._generate_zpl2_data(self.printer).decode("utf-8")
self.assertEqual(
contents,
# Label start
"^XA\n"
# Print width
"^PW480\n"
# UTF-8 encoding
"^CI28\n"
# Label position
"^LH10,10\n"
# Component position
"^FO10,10"
# Component format
"^GB1,1,1,B,0"
# Component end
"^FS\n"
# Recall last saved parameters
"^JUR\n"
# Label end
"^XZ",
)
def test_diagonal_line_label_contents(self):
"""Check contents of a diagonal line label"""
label = self.new_label()
self.new_component({"label_id": label.id, "component_type": "diagonal"})
contents = label._generate_zpl2_data(self.printer).decode("utf-8")
self.assertEqual(
contents,
# Label start
"^XA\n"
# Print width
"^PW480\n"
# UTF-8 encoding
"^CI28\n"
# Label position
"^LH10,10\n"
# Component position
"^FO10,10"
# Component format
"^GD3,3,1,B,L"
# Component end
"^FS\n"
# Recall last saved parameters
"^JUR\n"
# Label end
"^XZ",
)
def test_circle_label_contents(self):
"""Check contents of a circle label"""
label = self.new_label()
self.new_component({"label_id": label.id, "component_type": "circle"})
contents = label._generate_zpl2_data(self.printer).decode("utf-8")
self.assertEqual(
contents,
# Label start
"^XA\n"
# Print width
"^PW480\n"
# UTF-8 encoding
"^CI28\n"
# Label position
"^LH10,10\n"
# Component position
"^FO10,10"
# Component format
"^GC3,2,B"
# Component end
"^FS\n"
# Recall last saved parameters
"^JUR\n"
# Label end
"^XZ",
)
def test_code11_barcode_label_contents(self):
"""Check contents of a code 11 barcode label"""
label = self.new_label()
data = "Some text"
self.new_component(
{
"label_id": label.id,
"component_type": "code_11",
"data": '"' + data + '"',
}
)
contents = label._generate_zpl2_data(self.printer).decode("utf-8")
self.assertEqual(
contents,
# Label start
"^XA\n"
# Print width
"^PW480\n"
# UTF-8 encoding
"^CI28\n"
# Label position
"^LH10,10\n"
# Barcode default format
"^BY2,3.0"
# Component position
"^FO10,10"
# Component format
"^B1N,N,0,N,N"
# Component contents
"^FD{contents}"
# Component end
"^FS\n"
# Recall last saved parameters
"^JUR\n"
# Label end
"^XZ".format(contents=data),
)
def test_2of5_barcode_label_contents(self):
"""Check contents of a interleaved 2 of 5 barcode label"""
label = self.new_label()
data = "Some text"
self.new_component(
{
"label_id": label.id,
"component_type": "interleaved_2_of_5",
"data": '"' + data + '"',
}
)
contents = label._generate_zpl2_data(self.printer).decode("utf-8")
self.assertEqual(
contents,
# Label start
"^XA\n"
# Print width
"^PW480\n"
# UTF-8 encoding
"^CI28\n"
# Label position
"^LH10,10\n"
# Barcode default format
"^BY2,3.0"
# Component position
"^FO10,10"
# Component format
"^B2N,0,N,N,N"
# Component contents
"^FD{contents}"
# Component end
"^FS\n"
# Recall last saved parameters
"^JUR\n"
# Label end
"^XZ".format(contents=data),
)
def test_code39_barcode_label_contents(self):
"""Check contents of a code 39 barcode label"""
label = self.new_label()
data = "Some text"
self.new_component(
{
"label_id": label.id,
"component_type": "code_39",
"data": '"' + data + '"',
}
)
contents = label._generate_zpl2_data(self.printer).decode("utf-8")
self.assertEqual(
contents,
# Label start
"^XA\n"
# Print width
"^PW480\n"
# UTF-8 encoding
"^CI28\n"
# Label position
"^LH10,10\n"
# Barcode default format
"^BY2,3.0"
# Component position
"^FO10,10"
# Component format
"^B3N,N,0,N,N"
# Component contents
"^FD{contents}"
# Component end
"^FS\n"
# Recall last saved parameters
"^JUR\n"
# Label end
"^XZ".format(contents=data),
)
def test_code49_barcode_label_contents(self):
"""Check contents of a code 49 barcode label"""
label = self.new_label()
data = "Some text"
self.new_component(
{
"label_id": label.id,
"component_type": "code_49",
"data": '"' + data + '"',
}
)
contents = label._generate_zpl2_data(self.printer).decode("utf-8")
self.assertEqual(
contents,
# Label start
"^XA\n"
# Print width
"^PW480\n"
# UTF-8 encoding
"^CI28\n"
# Label position
"^LH10,10\n"
# Barcode default format
"^BY2,3.0"
# Component position
"^FO10,10"
# Component format
"^B4N,0,N"
# Component contents
"^FD{contents}"
# Component end
"^FS\n"
# Recall last saved parameters
"^JUR\n"
# Label end
"^XZ".format(contents=data),
)
def test_code49_barcode_label_contents_line(self):
"""Check contents of a code 49 barcode label"""
label = self.new_label()
data = "Some text"
self.new_component(
{
"label_id": label.id,
"component_type": "code_49",
"data": '"' + data + '"',
"interpretation_line": True,
}
)
contents = label._generate_zpl2_data(self.printer).decode("utf-8")
self.assertEqual(
contents,
# Label start
"^XA\n"
# Print width
"^PW480\n"
# UTF-8 encoding
"^CI28\n"
# Label position
"^LH10,10\n"
# Barcode default format
"^BY2,3.0"
# Component position
"^FO10,10"
# Component format
"^B4N,0,B"
# Component contents
"^FD{contents}"
# Component end
"^FS\n"
# Recall last saved parameters
"^JUR\n"
# Label end
"^XZ".format(contents=data),
)
def test_code49_barcode_label_contents_with_above(self):
"""Check contents of a code 49 barconde label
with interpretation line above
"""
label = self.new_label()
data = "Some text"
self.new_component(
{
"label_id": label.id,
"component_type": "code_49",
"data": '"' + data + '"',
"interpretation_line": True,
"interpretation_line_above": True,
}
)
contents = label._generate_zpl2_data(self.printer).decode("utf-8")
self.assertEqual(
contents,
# Label start
"^XA\n"
# Print width
"^PW480\n"
# UTF-8 encoding
"^CI28\n"
# Label position
"^LH10,10\n"
# Barcode default format
"^BY2,3.0"
# Component position
"^FO10,10"
# Component format
"^B4N,0,A"
# Component contents
"^FD{contents}"
# Component end
"^FS\n"
# Recall last saved parameters
"^JUR\n"
# Label end
"^XZ".format(contents=data),
)
def test_pdf417_barcode_label_contents(self):
"""Check contents of a pdf417 barcode label"""
label = self.new_label()
data = "Some text"
self.new_component(
{"label_id": label.id, "component_type": "pdf417", "data": '"' + data + '"'}
)
contents = label._generate_zpl2_data(self.printer).decode("utf-8")
self.assertEqual(
contents,
# Label start
"^XA\n"
# Print width
"^PW480\n"
# UTF-8 encoding
"^CI28\n"
# Label position
"^LH10,10\n"
# Barcode default format
"^BY2,3.0"
# Component position
"^FO10,10"
# Component format
"^B7N,0,0,0,0,N"
# Component contents
"^FD{contents}"
# Component end
"^FS\n"
# Recall last saved parameters
"^JUR\n"
# Label end
"^XZ".format(contents=data),
)
def test_ean8_barcode_label_contents(self):
"""Check contents of a ean-8 barcode label"""
label = self.new_label()
data = "Some text"
self.new_component(
{"label_id": label.id, "component_type": "ean-8", "data": '"' + data + '"'}
)
contents = label._generate_zpl2_data(self.printer).decode("utf-8")
self.assertEqual(
contents,
# Label start
"^XA\n"
# Print width
"^PW480\n"
# UTF-8 encoding
"^CI28\n"
# Label position
"^LH10,10\n"
# Barcode default format
"^BY2,3.0"
# Component position
"^FO10,10"
# Component format
"^B8N,0,N,N"
# Component contents
"^FD{contents}"
# Component end
"^FS\n"
# Recall last saved parameters
"^JUR\n"
# Label end
"^XZ".format(contents=data),
)
def test_upce_barcode_label_contents(self):
"""Check contents of a upc-e barcode label"""
label = self.new_label()
data = "Some text"
self.new_component(
{"label_id": label.id, "component_type": "upc-e", "data": '"' + data + '"'}
)
contents = label._generate_zpl2_data(self.printer).decode("utf-8")
self.assertEqual(
contents,
# Label start
"^XA\n"
# Print width
"^PW480\n"
# UTF-8 encoding
"^CI28\n"
# Label position
"^LH10,10\n"
# Barcode default format
"^BY2,3.0"
# Component position
"^FO10,10"
# Component format
"^B9N,0,N,N,N"
# Component contents
"^FD{contents}"
# Component end
"^FS\n"
# Recall last saved parameters
"^JUR\n"
# Label end
"^XZ".format(contents=data),
)
def test_code128_barcode_label_contents(self):
"""Check contents of a code 128 barcode label"""
label = self.new_label()
data = "Some text"
self.new_component(
{
"label_id": label.id,
"component_type": "code_128",
"data": '"' + data + '"',
}
)
contents = label._generate_zpl2_data(self.printer).decode("utf-8")
self.assertEqual(
contents,
# Label start
"^XA\n"
# Print width
"^PW480\n"
# UTF-8 encoding
"^CI28\n"
# Label position
"^LH10,10\n"
# Barcode default format
"^BY2,3.0"
# Component position
"^FO10,10"
# Component format
"^BCN,0,N,N,N"
# Component contents
"^FD{contents}"
# Component end
"^FS\n"
# Recall last saved parameters
"^JUR\n"
# Label end
"^XZ".format(contents=data),
)
def test_ean13_barcode_label_contents(self):
"""Check contents of a ean-13 barcode label"""
label = self.new_label()
data = "Some text"
self.new_component(
{"label_id": label.id, "component_type": "ean-13", "data": '"' + data + '"'}
)
contents = label._generate_zpl2_data(self.printer).decode("utf-8")
self.assertEqual(
contents,
# Label start
"^XA\n"
# Print width
"^PW480\n"
# UTF-8 encoding
"^CI28\n"
# Label position
"^LH10,10\n"
# Barcode default format
"^BY2,3.0"
# Component position
"^FO10,10"
# Component format
"^BEN,0,N,N"
# Component contents
"^FD{contents}"
# Component end
"^FS\n"
# Recall last saved parameters
"^JUR\n"
# Label end
"^XZ".format(contents=data),
)
def test_qrcode_barcode_label_contents(self):
"""Check contents of a qr code barcode label"""
label = self.new_label()
data = "Some text"
self.new_component(
{
"label_id": label.id,
"component_type": "qr_code",
"data": '"' + data + '"',
}
)
contents = label._generate_zpl2_data(self.printer).decode("utf-8")
self.assertEqual(
contents,
# Label start
"^XA\n"
# Print width
"^PW480\n"
# UTF-8 encoding
"^CI28\n"
# Label position
"^LH10,10\n"
# Barcode default format
"^BY2,3.0"
# Component position
"^FO10,10"
# Component format
"^BQN,2,1,Q,7"
# Component contents
"^FDQA,{contents}"
# Component end
"^FS\n"
# Recall last saved parameters
"^JUR\n"
# Label end
"^XZ".format(contents=data),
)
def test_graphic_label_contents_blank(self):
"""Check contents of a image label"""
label = self.new_label()
data = "R0lGODlhAQABAIAAAP7//wAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw=="
self.new_component(
{
"label_id": label.id,
"component_type": "graphic",
"data": '"' + data + '"',
}
)
contents = label._generate_zpl2_data(self.printer).decode("utf-8")
self.assertEqual(
contents,
"^XA\n"
"^PW480\n"
"^CI28\n"
"^LH10,10\n"
"^FO10,10^GFA,1.0,1.0,1.0,b'00'^FS\n"
"^JUR\n"
"^XZ",
)
def test_graphic_label_contents_blank_rotated(self):
"""Check contents of image rotated label"""
label = self.new_label()
data = "R0lGODlhAQABAIAAAP7//wAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw=="
self.new_component(
{
"label_id": label.id,
"component_type": "graphic",
"data": '"' + data + '"',
"height": 10,
"width": 10,
"reverse_print": 1,
"orientation": zpl2.ORIENTATION_ROTATED,
}
)
contents = label._generate_zpl2_data(self.printer).decode("utf-8")
self.assertEqual(
contents,
"^XA\n"
"^PW480\n"
"^CI28\n"
"^LH10,10\n"
"^FO10,10^GFA,20.0,20.0,2.0,"
"b'FFC0FFC0FFC0FFC0FFC0FFC0FFC0FFC0FFC0FFC0'^FS\n"
"^JUR\n"
"^XZ",
)
def test_graphic_label_contents_blank_inverted(self):
"""Check contents of a image inverted label"""
label = self.new_label()
data = "R0lGODlhAQABAIAAAP7//wAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw=="
self.new_component(
{
"label_id": label.id,
"component_type": "graphic",
"data": '"' + data + '"',
"orientation": zpl2.ORIENTATION_INVERTED,
}
)
contents = label._generate_zpl2_data(self.printer).decode("utf-8")
self.assertEqual(
contents,
"^XA\n"
"^PW480\n"
"^CI28\n"
"^LH10,10\n"
"^FO10,10^GFA,1.0,1.0,1.0,b'00'^FS\n"
"^JUR\n"
"^XZ",
)
def test_graphic_label_contents_blank_bottom(self):
"""Check contents of a image bottom label"""
label = self.new_label()
data = "R0lGODlhAQABAIAAAP7//wAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw=="
self.new_component(
{
"label_id": label.id,
"component_type": "graphic",
"data": '"' + data + '"',
"orientation": zpl2.ORIENTATION_BOTTOM_UP,
}
)
contents = label._generate_zpl2_data(self.printer).decode("utf-8")
self.assertEqual(
contents,
"^XA\n"
"^PW480\n"
"^CI28\n"
"^LH10,10\n"
"^FO10,10^GFA,1.0,1.0,1.0,b'00'^FS\n"
"^JUR\n"
"^XZ",
)
def test_zpl2_raw_contents_blank(self):
"""Check contents of a image label"""
label = self.new_label()
data = "^FO50,50^GB100,100,100^FS"
self.new_component(
{
"label_id": label.id,
"component_type": "zpl2_raw",
"data": '"' + data + '"',
}
)
contents = label._generate_zpl2_data(self.printer).decode("utf-8")
self.assertEqual(
contents,
"^XA\n"
"^PW480\n"
"^CI28\n"
"^LH10,10\n"
"^FO50,50^GB100,100,100^FS\n"
"^JUR\n"
"^XZ",
)
def test_zpl2_component_not_show(self):
"""Check to don't show no things"""
label = self.new_label()
data = "component_not_show"
self.new_component(
{
"label_id": label.id,
"component_type": "zpl2_raw",
"data": '"' + data + '"',
}
)
contents = label._generate_zpl2_data(self.printer).decode("utf-8")
self.assertEqual(
contents, "^XA\n" "^PW480\n" "^CI28\n" "^LH10,10\n" "^JUR\n" "^XZ"
)
def test_zpl2_component_quick_move(self):
"""Check component quick move"""
label = self.new_label()
component = self.new_component(
{
"label_id": label.id,
"component_type": "zpl2_raw",
"data": '""',
"origin_x": 20,
"origin_y": 30,
}
)
component.action_plus_origin_x()
self.assertEqual(30, component.origin_x)
component.action_minus_origin_x()
self.assertEqual(20, component.origin_x)
component.action_plus_origin_y()
self.assertEqual(40, component.origin_y)
component.action_minus_origin_y()
self.assertEqual(30, component.origin_y)