~/workspace$ python test_gamification_system.py 🎮 Testing Gamification with SQLite... Traceback (most recent call last): File "/home/runner/workspace/.pythonlibs/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1965, in _exec_single_context self.dialect.do_execute( File "/home/runner/workspace/.pythonlibs/lib/python3.11/site-packages/sqlalchemy/engine/default.py", line 921, in do_execute cursor.execute(statement, parameters) psycopg2.errors.UniqueViolation: duplicate key value violates unique constraint "ix_users_abn_number" DETAIL: Key (abn_number)=(98765432101) already exists. The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/runner/workspace/test_gamification_system.py", line 31, in db.session.commit() File "/home/runner/workspace/.pythonlibs/lib/python3.11/site-packages/sqlalchemy/orm/scoping.py", line 554, in commit return self._proxied.commit() ^^^^^^^^^^^^^^^^^^^^^^ File "/home/runner/workspace/.pythonlibs/lib/python3.11/site-packages/sqlalchemy/orm/session.py", line 1923, in commit trans.commit(_to_root=True) File "", line 2, in commit File "/home/runner/workspace/.pythonlibs/lib/python3.11/site-packages/sqlalchemy/orm/state_changes.py", line 139, in _go ret_value = fn(self, *arg, **kw) ^^^^^^^^^^^^^^^^^^^^ File "/home/runner/workspace/.pythonlibs/lib/python3.11/site-packages/sqlalchemy/orm/session.py", line 1239, in commit self._prepare_impl() File "", line 2, in _prepare_impl File "/home/runner/workspace/.pythonlibs/lib/python3.11/site-packages/sqlalchemy/orm/state_changes.py", line 139, in _go ret_value = fn(self, *arg, **kw) ^^^^^^^^^^^^^^^^^^^^ File "/home/runner/workspace/.pythonlibs/lib/python3.11/site-packages/sqlalchemy/orm/session.py", line 1214, in _prepare_impl self.session.flush() File "/home/runner/workspace/.pythonlibs/lib/python3.11/site-packages/sqlalchemy/orm/session.py", line 4179, in flush self._flush(objects) File "/home/runner/workspace/.pythonlibs/lib/python3.11/site-packages/sqlalchemy/orm/session.py", line 4314, in _flush with util.safe_reraise(): File "/home/runner/workspace/.pythonlibs/lib/python3.11/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__ raise exc_value.with_traceback(exc_tb) File "/home/runner/workspace/.pythonlibs/lib/python3.11/site-packages/sqlalchemy/orm/session.py", line 4275, in _flush flush_context.execute() File "/home/runner/workspace/.pythonlibs/lib/python3.11/site-packages/sqlalchemy/orm/unitofwork.py", line 466, in execute rec.execute(self) File "/home/runner/workspace/.pythonlibs/lib/python3.11/site-packages/sqlalchemy/orm/unitofwork.py", line 642, in execute util.preloaded.orm_persistence.save_obj( File "/home/runner/workspace/.pythonlibs/lib/python3.11/site-packages/sqlalchemy/orm/persistence.py", line 93, in save_obj _emit_insert_statements( File "/home/runner/workspace/.pythonlibs/lib/python3.11/site-packages/sqlalchemy/orm/persistence.py", line 1226, in _emit_insert_statements result = connection.execute( ^^^^^^^^^^^^^^^^^^^ File "/home/runner/workspace/.pythonlibs/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1412, in execute return meth( ^^^^^ File "/home/runner/workspace/.pythonlibs/lib/python3.11/site-packages/sqlalchemy/sql/elements.py", line 516, in _execute_on_connection return connection._execute_clauseelement( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/runner/workspace/.pythonlibs/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1635, in _execute_clauseelement ret = self._execute_context( ^^^^^^^^^^^^^^^^^^^^^^ File "/home/runner/workspace/.pythonlibs/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1844, in _execute_context return self._exec_single_context( ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/runner/workspace/.pythonlibs/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1984, in _exec_single_context self._handle_dbapi_exception( File "/home/runner/workspace/.pythonlibs/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 2339, in _handle_dbapi_exception raise sqlalchemy_exception.with_traceback(exc_info[2]) from e File "/home/runner/workspace/.pythonlibs/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1965, in _exec_single_context self.dialect.do_execute( File "/home/runner/workspace/.pythonlibs/lib/python3.11/site-packages/sqlalchemy/engine/default.py", line 921, in do_execute cursor.execute(statement, parameters) sqlalchemy.exc.IntegrityError: (psycopg2.errors.UniqueViolation) duplicate key value violates unique constraint "ix_users_abn_number" DETAIL: Key (abn_number)=(98765432101) already exists. [SQL: INSERT INTO users (email, password_hash, first_name, last_name, role, phone_number, location, business_name, primary_trade, abn_number, gst_registered, jobs_completed, average_rating, total_reviews, response_rate, public_liability_insurance, public_liability_amount, workers_comp_insurance, insurance_expiry_date, worker_control_level, white_card_number, white_card_expiry, is_active, account_status, privacy_consent, terms_accepted, terms_accepted_date, date_created, last_login, total_points, current_level, seasonal_league, created_at, updated_at) VALUES (%(email)s, %(password_hash)s, %(first_name)s, %(last_name)s, %(role)s, %(phone_number)s, %(location)s, %(business_name)s, %(primary_trade)s, %(abn_number)s, %(gst_registered)s, %(jobs_completed)s, %(average_rating)s, %(total_reviews)s, %(response_rate)s, %(public_liability_insurance)s, %(public_liability_amount)s, %(workers_comp_insurance)s, %(insurance_expiry_date)s, %(worker_control_level)s, %(white_card_number)s, %(white_card_expiry)s, %(is_active)s, %(account_status)s, %(privacy_consent)s, %(terms_accepted)s, %(terms_accepted_date)s, %(date_created)s, %(last_login)s, %(total_points)s, %(current_level)s, %(seasonal_league)s, %(created_at)s, %(updated_at)s) RETURNING users.id] [parameters: {'email': 'test_d6c5681c@test.com', 'password_hash': 'pbkdf2:sha256:600000$fiVIVH0PiyHHsX4C$279094cb35895be33d20fc53f3ec3b1cde8e24ac874ef9e23d53f120dab5aeea', 'first_name': 'Test', 'last_name': 'User', 'role': 'worker', 'phone_number': '0412345678', 'location': 'Sydney', 'business_name': None, 'primary_trade': None, 'abn_number': '98765432101', 'gst_registered': False, 'jobs_completed': 0, 'average_rating': 0.0, 'total_reviews': 0, 'response_rate': 0.0, 'public_liability_insurance': False, 'public_liability_amount': None, 'workers_comp_insurance': False, 'insurance_expiry_date': None, 'worker_control_level': None, 'white_card_number': None, 'white_card_expiry': None, 'is_active': True, 'account_status': 'active', 'privacy_consent': False, 'terms_accepted': False, 'terms_accepted_date': None, 'date_created': datetime.datetime(2025, 8, 5, 4, 55, 5, 458291), 'last_login': None, 'total_points': 0, 'current_level': 1, 'seasonal_league': 'bronze', 'created_at': datetime.datetime(2025, 8, 5, 4, 55, 5, 458295), 'updated_at': datetime.datetime(2025, 8, 5, 4, 55, 5, 458296)}] (Background on this error at: https://sqlalche.me/e/20/gkpj) ~/workspace$