| 
									
										
										
										
											2024-12-13 20:38:00 -06:00
										 |  |  | # -*- 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): | 
					
						
							| 
									
										
										
										
											2025-08-30 21:25:44 -05:00
										 |  |  |                 __tablename__ = "testing_mybatch" | 
					
						
							| 
									
										
										
										
											2024-12-13 20:38:00 -06:00
										 |  |  | 
 | 
					
						
							|  |  |  |             model.Base.metadata.create_all(bind=self.session.bind) | 
					
						
							|  |  |  |             metadata = sa.MetaData() | 
					
						
							|  |  |  |             metadata.reflect(self.session.bind) | 
					
						
							| 
									
										
										
										
											2025-08-30 21:25:44 -05:00
										 |  |  |             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'))", | 
					
						
							|  |  |  |             ) | 
					
						
							| 
									
										
										
										
											2024-12-13 20:38:00 -06:00
										 |  |  |             self.assertEqual(str(batch), "00000042") | 
					
						
							| 
									
										
										
										
											2025-08-30 16:36:52 -05:00
										 |  |  |             self.assertEqual(batch.id_str, "00000042") | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             batch2 = MyBatch() | 
					
						
							|  |  |  |             self.assertIsNone(batch2.id_str) | 
					
						
							| 
									
										
										
										
											2024-12-13 20:38:00 -06:00
										 |  |  | 
 | 
					
						
							|  |  |  |     class TestBatchRowMixin(DataTestCase): | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         def test_basic(self): | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             class MyBatch2(mod.BatchMixin, model.Base): | 
					
						
							| 
									
										
										
										
											2025-08-30 21:25:44 -05:00
										 |  |  |                 __tablename__ = "testing_mybatch2" | 
					
						
							| 
									
										
										
										
											2024-12-13 20:38:00 -06:00
										 |  |  | 
 | 
					
						
							|  |  |  |             class MyBatchRow2(mod.BatchRowMixin, model.Base): | 
					
						
							| 
									
										
										
										
											2025-08-30 21:25:44 -05:00
										 |  |  |                 __tablename__ = "testing_mybatch_row2" | 
					
						
							| 
									
										
										
										
											2024-12-13 20:38:00 -06:00
										 |  |  |                 __batch_class__ = MyBatch2 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             model.Base.metadata.create_all(bind=self.session.bind) | 
					
						
							|  |  |  |             metadata = sa.MetaData() | 
					
						
							|  |  |  |             metadata.reflect(self.session.bind) | 
					
						
							| 
									
										
										
										
											2025-08-30 21:25:44 -05:00
										 |  |  |             self.assertIn("testing_mybatch2", metadata.tables) | 
					
						
							|  |  |  |             self.assertIn("testing_mybatch_row2", metadata.tables) | 
					
						
							| 
									
										
										
										
											2024-12-13 20:38:00 -06:00
										 |  |  | 
 | 
					
						
							|  |  |  |             # nb. this gives coverage but doesn't really test much | 
					
						
							| 
									
										
										
										
											2025-08-30 21:25:44 -05:00
										 |  |  |             batch = MyBatch2( | 
					
						
							|  |  |  |                 id=42, uuid=_uuid.UUID("0675cdac-ffc9-7690-8000-6023de1c8cfd") | 
					
						
							|  |  |  |             ) | 
					
						
							| 
									
										
										
										
											2024-12-13 20:38:00 -06:00
										 |  |  |             row = MyBatchRow2() | 
					
						
							|  |  |  |             batch.rows.append(row) |