62 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			62 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
# -*- coding: utf-8; -*-
 | 
						|
 | 
						|
import uuid as _uuid
 | 
						|
 | 
						|
from wuttjamaican.testing import DataTestCase
 | 
						|
 | 
						|
try:
 | 
						|
    import sqlalchemy as sa
 | 
						|
    from wuttjamaican.db import model
 | 
						|
    from wuttjamaican.db.model import batch as mod
 | 
						|
except ImportError:
 | 
						|
    pass
 | 
						|
else:
 | 
						|
 | 
						|
    class TestBatchMixin(DataTestCase):
 | 
						|
 | 
						|
        def test_basic(self):
 | 
						|
 | 
						|
            class MyBatch(mod.BatchMixin, model.Base):
 | 
						|
                __tablename__ = "testing_mybatch"
 | 
						|
 | 
						|
            model.Base.metadata.create_all(bind=self.session.bind)
 | 
						|
            metadata = sa.MetaData()
 | 
						|
            metadata.reflect(self.session.bind)
 | 
						|
            self.assertIn("testing_mybatch", metadata.tables)
 | 
						|
 | 
						|
            batch = MyBatch(
 | 
						|
                id=42, uuid=_uuid.UUID("0675cdac-ffc9-7690-8000-6023de1c8cfd")
 | 
						|
            )
 | 
						|
            self.assertEqual(
 | 
						|
                repr(batch),
 | 
						|
                "MyBatch(uuid=UUID('0675cdac-ffc9-7690-8000-6023de1c8cfd'))",
 | 
						|
            )
 | 
						|
            self.assertEqual(str(batch), "00000042")
 | 
						|
            self.assertEqual(batch.id_str, "00000042")
 | 
						|
 | 
						|
            batch2 = MyBatch()
 | 
						|
            self.assertIsNone(batch2.id_str)
 | 
						|
 | 
						|
    class TestBatchRowMixin(DataTestCase):
 | 
						|
 | 
						|
        def test_basic(self):
 | 
						|
 | 
						|
            class MyBatch2(mod.BatchMixin, model.Base):
 | 
						|
                __tablename__ = "testing_mybatch2"
 | 
						|
 | 
						|
            class MyBatchRow2(mod.BatchRowMixin, model.Base):
 | 
						|
                __tablename__ = "testing_mybatch_row2"
 | 
						|
                __batch_class__ = MyBatch2
 | 
						|
 | 
						|
            model.Base.metadata.create_all(bind=self.session.bind)
 | 
						|
            metadata = sa.MetaData()
 | 
						|
            metadata.reflect(self.session.bind)
 | 
						|
            self.assertIn("testing_mybatch2", metadata.tables)
 | 
						|
            self.assertIn("testing_mybatch_row2", metadata.tables)
 | 
						|
 | 
						|
            # nb. this gives coverage but doesn't really test much
 | 
						|
            batch = MyBatch2(
 | 
						|
                id=42, uuid=_uuid.UUID("0675cdac-ffc9-7690-8000-6023de1c8cfd")
 | 
						|
            )
 | 
						|
            row = MyBatchRow2()
 | 
						|
            batch.rows.append(row)
 |