from types import SimpleNamespace import unittest from trytond.modules.ncf_manager.ncf_manager import ( NCFManager, NCFManagerSequences) from trytond.modules.ncf_manager.sequence import Sequence class NcfManagerUnitTestCase(unittest.TestCase): def test_manager_defaults_and_rec_name(self): self.assertEqual(NCFManager.default_state(), 'draft') manager = SimpleNamespace() manager.id = 42 manager.company = SimpleNamespace(rec_name='ACME') manager.app_number = 'APP001' self.assertEqual(NCFManager.get_rec_name(manager, 'name'), 'ACME - APP001') def test_sequence_defaults_and_rec_name(self): self.assertEqual(NCFManagerSequences.default_state(), 'draft') sequence = SimpleNamespace() sequence.ncf_type_string = 'Factura de Credito Fiscal - B01' self.assertEqual( NCFManagerSequences.get_rec_name(sequence, 'name'), 'Factura de Credito Fiscal ') def test_ir_sequence_on_change_values_for_ncf_type(self): sequence = SimpleNamespace() sequence.sequence_type = SimpleNamespace(name='Factura de Consumo') self.assertEqual(Sequence.on_change_with_prefix(sequence), 'B02') self.assertEqual(Sequence.on_change_with_padding(sequence), 8) self.assertEqual(Sequence.on_change_with_name(sequence), 'Factura de Consumo') def test_ir_sequence_quantities(self): sequence = SimpleNamespace() sequence.from_number = 10 sequence.until_number = 20 sequence.number_next = 12 self.assertEqual(Sequence.on_change_with_approved_qty(sequence), 11) self.assertEqual(Sequence.on_change_with_remaining_qty(sequence), 9) def test_unknown_ncf_type_has_empty_sequence_defaults(self): sequence = SimpleNamespace() sequence.sequence_type = SimpleNamespace(name='Unknown') self.assertIsNone(Sequence.on_change_with_prefix(sequence)) self.assertEqual(Sequence.on_change_with_padding(sequence), 0)