# -*- coding: utf-8; -*- from __future__ import unicode_literals, absolute_import import os import shutil from unittest import TestCase from rattail import labels as mod from rattail.config import make_config from rattail.exceptions import LabelPrintingError class TestLabelPrinter(TestCase): def setUp(self): self.config = self.make_config() self.printer = self.make_printer() def make_config(self): return make_config([], extend=False) def make_printer(self): return mod.LabelPrinter(self.config) def test_print_labels(self): labels = [] # not implemented by default self.assertRaises(NotImplementedError, self.printer.print_labels, labels) class TestCommandFilePrinter(TestCase): def setUp(self): self.config = self.make_config() self.printer = self.make_printer() def make_config(self): config = make_config([], extend=False) config.setdefault('rattail', 'timezone.default', 'America/Chicago') return config def make_printer(self): printer = mod.CommandFilePrinter(self.config) printer.formatter = mod.CommandFormatter(self.config, template="") return printer def test_print_labels(self): app = self.config.get_app() labels = [] # output_dir is required setting self.assertRaises(LabelPrintingError, self.printer.print_labels, labels) # okay now with output_dir outdir = app.make_temp_dir() self.printer.output_dir = outdir path = self.printer.print_labels(labels) self.assertEqual(os.path.dirname(path), outdir) # also can override output_dir by passing it in call outdir2 = app.make_temp_dir() path2 = self.printer.print_labels(labels, output_dir=outdir2) self.assertEqual(os.path.dirname(path2), outdir2) shutil.rmtree(outdir) shutil.rmtree(outdir2)