Test basic CRUD operations
(self)
| 115 | return False |
| 116 | |
| 117 | def test_basic_crud(self): |
| 118 | """Test basic CRUD operations""" |
| 119 | session = self.Session() |
| 120 | try: |
| 121 | # CREATE |
| 122 | user = User( |
| 123 | username="john_doe", |
| 124 | email="john@example.com", |
| 125 | full_name="John Doe", |
| 126 | age=30, |
| 127 | balance=Decimal('1000.50'), |
| 128 | birth_date=date(1993, 5, 15), |
| 129 | bio="Software developer", |
| 130 | metadata_json={"interests": ["coding", "gaming"]} |
| 131 | ) |
| 132 | session.add(user) |
| 133 | session.commit() |
| 134 | |
| 135 | # READ |
| 136 | retrieved = session.query(User).filter_by(username="john_doe").first() |
| 137 | assert retrieved is not None |
| 138 | assert retrieved.email == "john@example.com" |
| 139 | assert retrieved.balance == Decimal('1000.50') |
| 140 | |
| 141 | # UPDATE |
| 142 | retrieved.age = 31 |
| 143 | retrieved.metadata_json = {"interests": ["coding", "gaming", "reading"]} |
| 144 | session.commit() |
| 145 | |
| 146 | updated = session.query(User).filter_by(id=retrieved.id).first() |
| 147 | assert updated.age == 31 |
| 148 | assert len(updated.metadata_json["interests"]) == 3 |
| 149 | |
| 150 | # DELETE |
| 151 | session.delete(updated) |
| 152 | session.commit() |
| 153 | |
| 154 | deleted = session.query(User).filter_by(username="john_doe").first() |
| 155 | assert deleted is None |
| 156 | |
| 157 | finally: |
| 158 | session.close() |
| 159 | |
| 160 | def test_relationships(self): |
| 161 | """Test relationship operations""" |