summaryrefslogtreecommitdiffstats
path: root/share/extensions/tests/test_render_barcode.py
diff options
context:
space:
mode:
Diffstat (limited to 'share/extensions/tests/test_render_barcode.py')
-rw-r--r--share/extensions/tests/test_render_barcode.py100
1 files changed, 100 insertions, 0 deletions
diff --git a/share/extensions/tests/test_render_barcode.py b/share/extensions/tests/test_render_barcode.py
new file mode 100644
index 0000000..f9fabf5
--- /dev/null
+++ b/share/extensions/tests/test_render_barcode.py
@@ -0,0 +1,100 @@
+# coding=utf-8
+#
+# Copyright (C) 2018 Martin Owens
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA.
+#
+"""
+Written to test the coding of generating barcodes.
+"""
+from collections import defaultdict
+
+from barcode import get_barcode
+from render_barcode import Barcode
+
+from inkex.tester import ComparisonMixin, TestCase
+
+class BarcodeBasicTest(ComparisonMixin, TestCase):
+ effect_class = Barcode
+ comparisons = [
+ ('--type', 'Ean2', '--text', '55'),
+ ('--type', 'Code93', '--text', '3332222'),
+ ('--type', 'Upce', '--text', '123456'),
+ ]
+
+class GetBarcodeTest(TestCase):
+ """Test each available barcode type"""
+ data = defaultdict(list)
+
+ @classmethod
+ def setUpClass(cls):
+ with open(cls.data_file('batches/barcodes.dat'), 'r') as fhl:
+ for line in fhl:
+ (btype, text, code) = line.strip().split(':', 2)
+ cls.data[btype].append((text, code))
+
+ def test_render_barcode_ian5(self):
+ """Barcode IAN5"""
+ self.barcode_test('Ean5')
+
+ def test_render_barcode_ian8(self):
+ """Barcode IAN5"""
+ self.barcode_test('Ean8')
+
+ def test_render_barcode_ian13(self):
+ """Barcode IAN5"""
+ self.barcode_test('Ean13')
+
+ def test_render_barcode_upca(self):
+ """Barcode IAN5"""
+ self.barcode_test('Upca')
+
+ def test_render_barcode_upce(self):
+ """Barcode UPCE"""
+ self.barcode_test('Upce')
+
+ def test_render_barcode_code128(self):
+ """Barcode Code128"""
+ self.barcode_test('Code128')
+
+ def test_render_barcode_code25i(self):
+ """Barcode Code25i"""
+ self.barcode_test('Code25i')
+
+ def test_render_barcode_code39(self):
+ """Barcode Code39"""
+ self.barcode_test('Code39')
+
+ def test_render_barcode_code39ext(self):
+ """Barcode Code39Ext"""
+ self.barcode_test('Code39Ext')
+
+ def test_render_barcode_ean2(self):
+ """Barcode Ean2"""
+ self.barcode_test('Ean2')
+
+ def test_render_barcode_royal_mail(self):
+ """Barcode RM4CC/RM4SCC"""
+ self.barcode_test('Rm4scc')
+
+ def barcode_test(self, name):
+ """Base module for all barcode testing"""
+
+ assert self.data[name.lower()], "No test data available for {}".format(name)
+ for datum in self.data[name.lower()]:
+ (text, code) = datum
+ coder = get_barcode(name, text=text)
+ code2 = coder.encode(text)
+ assert code == code2