velocity-python 0.1.42__tar.gz → 0.1.44__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {velocity_python-0.1.42/src/velocity_python.egg-info → velocity_python-0.1.44}/PKG-INFO +1 -1
- {velocity_python-0.1.42 → velocity_python-0.1.44}/pyproject.toml +1 -1
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/__init__.py +1 -1
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/servers/tablehelper.py +11 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/tests/test_tablehelper.py +23 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/payment/authorizenet_adapter.py +4 -4
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/payment/authorizenet_mirror.py +2 -2
- {velocity_python-0.1.42 → velocity_python-0.1.44/src/velocity_python.egg-info}/PKG-INFO +1 -1
- {velocity_python-0.1.42 → velocity_python-0.1.44}/tests/test_payment_authorizenet_adapter.py +2 -2
- {velocity_python-0.1.42 → velocity_python-0.1.44}/LICENSE +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/README.md +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/setup.cfg +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/aws/__init__.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/aws/amplify.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/aws/amplify_build.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/aws/assets/__init__.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/aws/assets/backfill.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/aws/assets/indexing.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/aws/assets/references.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/aws/assets/service.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/aws/assets/usage_index.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/aws/dirty_pipeline.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/aws/handlers/__init__.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/aws/handlers/base_handler.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/aws/handlers/context.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/aws/handlers/context_factory.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/aws/handlers/exceptions.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/aws/handlers/lambda_handler.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/aws/handlers/mixins/__init__.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/aws/handlers/mixins/data_service.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/aws/handlers/mixins/web_handler.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/aws/handlers/perf.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/aws/handlers/response.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/aws/handlers/sqs_handler.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/aws/s3.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/aws/ssm_config.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/aws/tests/__init__.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/aws/tests/test_base_handler_error_response.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/aws/tests/test_lambda_handler_json_serialization.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/aws/tests/test_response.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/__init__.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/core/__init__.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/core/async_support.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/core/column.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/core/database.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/core/decorators.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/core/engine.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/core/result.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/core/row.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/core/sequence.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/core/table.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/core/transaction.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/core/view.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/exceptions.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/migrations.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/servers/__init__.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/servers/base/__init__.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/servers/base/initializer.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/servers/base/operators.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/servers/base/sql.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/servers/base/types.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/servers/mysql/__init__.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/servers/mysql/operators.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/servers/mysql/reserved.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/servers/mysql/sql.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/servers/mysql/types.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/servers/postgres/__init__.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/servers/postgres/operators.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/servers/postgres/reserved.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/servers/postgres/sql.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/servers/postgres/types.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/servers/sqlite/__init__.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/servers/sqlite/operators.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/servers/sqlite/reserved.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/servers/sqlite/sql.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/servers/sqlite/types.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/servers/sqlserver/__init__.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/servers/sqlserver/operators.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/servers/sqlserver/reserved.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/servers/sqlserver/sql.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/servers/sqlserver/types.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/tests/__init__.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/tests/common_db_test.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/tests/postgres/__init__.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/tests/postgres/common.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/tests/postgres/test_column.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/tests/postgres/test_connections.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/tests/postgres/test_database.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/tests/postgres/test_engine.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/tests/postgres/test_general_usage.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/tests/postgres/test_imports.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/tests/postgres/test_result.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/tests/postgres/test_row.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/tests/postgres/test_row_comprehensive.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/tests/postgres/test_schema_locking.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/tests/postgres/test_schema_locking_unit.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/tests/postgres/test_sequence.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/tests/postgres/test_sql_comprehensive.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/tests/postgres/test_table.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/tests/postgres/test_table_comprehensive.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/tests/postgres/test_transaction.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/tests/sql/__init__.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/tests/sql/common.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/tests/sql/test_postgres_select_advanced.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/tests/sql/test_postgres_select_variances.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/tests/test_cursor_rowcount_fix.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/tests/test_db_utils.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/tests/test_postgres.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/tests/test_postgres_unchanged.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/tests/test_process_error_robustness.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/tests/test_result_caching.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/tests/test_result_sql_aware.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/tests/test_row_get_missing_column.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/tests/test_schema_locking_initializers.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/tests/test_schema_locking_simple.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/tests/test_sql_builder.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/tests/test_view_helper.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/utils.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/logging.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/misc/__init__.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/misc/conv/__init__.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/misc/conv/iconv.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/misc/conv/oconv.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/misc/db.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/misc/export.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/misc/format.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/misc/mail.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/misc/merge.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/misc/pdf.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/misc/tests/__init__.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/misc/tests/test_db.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/misc/tests/test_fix.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/misc/tests/test_format.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/misc/tests/test_iconv.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/misc/tests/test_merge.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/misc/tests/test_oconv.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/misc/tests/test_original_error.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/misc/tests/test_timer.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/misc/timer.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/misc/tools.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/payment/__init__.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/payment/base_adapter.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/payment/braintree_adapter.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/payment/braintree_mirror.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/payment/charge_rules.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/payment/stripe_adapter.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/payment/stripe_mirror.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity_python.egg-info/SOURCES.txt +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity_python.egg-info/dependency_links.txt +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity_python.egg-info/entry_points.txt +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity_python.egg-info/requires.txt +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity_python.egg-info/top_level.txt +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/tests/test_amplify_build.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/tests/test_asset_indexing.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/tests/test_asset_references.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/tests/test_assets_service.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/tests/test_async_support.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/tests/test_batch_operations.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/tests/test_concurrency_safety.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/tests/test_connection_pool.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/tests/test_connection_resilience.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/tests/test_context_job_descriptions.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/tests/test_decorators.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/tests/test_dirty_pipeline_fast_path.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/tests/test_email_processing.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/tests/test_iconv_money_to_cents.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/tests/test_lambda_handler.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/tests/test_lambda_handler_auth.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/tests/test_mixins_import.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/tests/test_n_plus_one.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/tests/test_observability.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/tests/test_payment_braintree_adapter.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/tests/test_payment_braintree_mirror.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/tests/test_payment_profile_sorting.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/tests/test_payment_stripe_adapter.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/tests/test_pdf.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/tests/test_prepared_statements.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/tests/test_psycopg3_upgrade.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/tests/test_query_cache.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/tests/test_row_batch_update.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/tests/test_row_cache_staleness.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/tests/test_row_dirty_tracking.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/tests/test_schema_migrations.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/tests/test_security_hardening.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/tests/test_server_cursor.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/tests/test_spreadsheet_functions.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/tests/test_sqs_per_record_transactions.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/tests/test_sys_modified_count_postgres_demo.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/tests/test_table_alter.py +0 -0
- {velocity_python-0.1.42 → velocity_python-0.1.44}/tests/test_where_clause_validation.py +0 -0
|
@@ -196,6 +196,17 @@ class TableHelper:
|
|
|
196
196
|
|
|
197
197
|
alias = self.get_table_alias("current_table")
|
|
198
198
|
if not self.has_pointer(column):
|
|
199
|
+
raw_expression = self.remove_operator(key).strip()
|
|
200
|
+
if column.upper() in self.reserved and re.search(
|
|
201
|
+
r"(?i)\bcase\s+when\b|\bexists\s*\(|\bselect\b|\bfrom\b|\bwhere\b",
|
|
202
|
+
raw_expression,
|
|
203
|
+
):
|
|
204
|
+
if options.get("bypass_on_error"):
|
|
205
|
+
return key
|
|
206
|
+
raise ValueError(
|
|
207
|
+
f"Could not safely resolve complex SQL expression: {key}"
|
|
208
|
+
)
|
|
209
|
+
|
|
199
210
|
# Standard column - no pointer syntax
|
|
200
211
|
if (
|
|
201
212
|
options.get("alias_table")
|
|
@@ -198,6 +198,29 @@ class TestTableHelper(unittest.TestCase):
|
|
|
198
198
|
f"Failed for '{input_expr}': expected '{expected}', got '{result}'",
|
|
199
199
|
)
|
|
200
200
|
|
|
201
|
+
def test_resolve_references_preserves_complex_case_exists_expression(self):
|
|
202
|
+
"""Complex CASE/EXISTS expressions should remain raw when not safely rewritable."""
|
|
203
|
+
original_reserved = TableHelper.reserved
|
|
204
|
+
TableHelper.reserved = ["CASE", "WHEN", "THEN", "ELSE", "END", "EXISTS"]
|
|
205
|
+
try:
|
|
206
|
+
expr = """coalesce(sum(case when exists (
|
|
207
|
+
select 1
|
|
208
|
+
from donor_users du
|
|
209
|
+
where lower(du.email_address) = lower(swipegive_settings.email_address)
|
|
210
|
+
and lower(coalesce(nullif(du.plaid_status, ''), 'ready')) not in ('error', 'purged')
|
|
211
|
+
) then 1 else 0 end), 0) as active"""
|
|
212
|
+
result = self.helper.resolve_references(
|
|
213
|
+
expr,
|
|
214
|
+
options={
|
|
215
|
+
"alias_column": True,
|
|
216
|
+
"alias_table": True,
|
|
217
|
+
"bypass_on_error": True,
|
|
218
|
+
},
|
|
219
|
+
)
|
|
220
|
+
self.assertEqual(result, expr)
|
|
221
|
+
finally:
|
|
222
|
+
TableHelper.reserved = original_reserved
|
|
223
|
+
|
|
201
224
|
def test_extract_column_name_cast_expressions(self):
|
|
202
225
|
"""Test extracting column names from CAST expressions"""
|
|
203
226
|
test_cases = [
|
{velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/payment/authorizenet_adapter.py
RENAMED
|
@@ -482,8 +482,8 @@ class AuthorizeNetAdapter(PaymentProcessorAdapter):
|
|
|
482
482
|
"reason_for_transaction": payment_data.get("description"),
|
|
483
483
|
"remote_authcode": trans.get("authCode"),
|
|
484
484
|
"remote_responsecode": code,
|
|
485
|
-
"
|
|
486
|
-
"
|
|
485
|
+
"client_id": payment_data.get("client_id"),
|
|
486
|
+
"campaign": payment_data.get("description"),
|
|
487
487
|
"email_address": payment_data.get("customer_email")
|
|
488
488
|
or payment_data.get("donor_email"),
|
|
489
489
|
"raw_payload": response,
|
|
@@ -607,8 +607,8 @@ class AuthorizeNetAdapter(PaymentProcessorAdapter):
|
|
|
607
607
|
"reason_for_transaction": order.description if client_id or campaign else None,
|
|
608
608
|
"remote_authcode": trans.get("authCode"),
|
|
609
609
|
"remote_responsecode": code,
|
|
610
|
-
"
|
|
611
|
-
"
|
|
610
|
+
"client_id": client_id or None,
|
|
611
|
+
"campaign": campaign or None,
|
|
612
612
|
"email_address": payment_data.get("customer_email")
|
|
613
613
|
or payment_data.get("donor_email"),
|
|
614
614
|
"raw_payload": response,
|
{velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/payment/authorizenet_mirror.py
RENAMED
|
@@ -203,8 +203,8 @@ def upsert_authorize_transaction_record(
|
|
|
203
203
|
"reason_for_transaction": _get_value(transaction, "reason_for_transaction"),
|
|
204
204
|
"remote_authcode": _get_value(transaction, "remote_authcode"),
|
|
205
205
|
"remote_responsecode": _get_value(transaction, "remote_responsecode"),
|
|
206
|
-
"
|
|
207
|
-
"
|
|
206
|
+
"client_id": _get_value(transaction, "client_id"),
|
|
207
|
+
"campaign": _get_value(transaction, "campaign"),
|
|
208
208
|
"email_address": _get_value(transaction, "email_address"),
|
|
209
209
|
"reconcile_response": _json_dumps(_get_value(transaction, "raw_payload") or transaction),
|
|
210
210
|
}
|
{velocity_python-0.1.42 → velocity_python-0.1.44}/tests/test_payment_authorizenet_adapter.py
RENAMED
|
@@ -157,8 +157,8 @@ def test_authorize_payment_upserts_authorize_transaction_mirror(adapter, monkeyp
|
|
|
157
157
|
"reason_for_transaction": "Campaign X",
|
|
158
158
|
"remote_authcode": "AUTH123",
|
|
159
159
|
"remote_responsecode": 1,
|
|
160
|
-
"
|
|
161
|
-
"
|
|
160
|
+
"client_id": 77,
|
|
161
|
+
"campaign": "Campaign X",
|
|
162
162
|
"email_address": "ada@example.com",
|
|
163
163
|
"raw_payload": {
|
|
164
164
|
"transactionResponse": {
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/aws/handlers/context_factory.py
RENAMED
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/aws/handlers/lambda_handler.py
RENAMED
|
File without changes
|
{velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/aws/handlers/mixins/__init__.py
RENAMED
|
File without changes
|
{velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/aws/handlers/mixins/data_service.py
RENAMED
|
File without changes
|
{velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/aws/handlers/mixins/web_handler.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/servers/base/initializer.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/servers/mysql/operators.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/servers/postgres/__init__.py
RENAMED
|
File without changes
|
{velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/servers/postgres/operators.py
RENAMED
|
File without changes
|
{velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/servers/postgres/reserved.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/servers/sqlite/__init__.py
RENAMED
|
File without changes
|
{velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/servers/sqlite/operators.py
RENAMED
|
File without changes
|
{velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/servers/sqlite/reserved.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/servers/sqlserver/__init__.py
RENAMED
|
File without changes
|
{velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/servers/sqlserver/operators.py
RENAMED
|
File without changes
|
{velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/servers/sqlserver/reserved.py
RENAMED
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/servers/sqlserver/types.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/tests/postgres/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/tests/postgres/test_column.py
RENAMED
|
File without changes
|
{velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/tests/postgres/test_connections.py
RENAMED
|
File without changes
|
{velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/tests/postgres/test_database.py
RENAMED
|
File without changes
|
{velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/tests/postgres/test_engine.py
RENAMED
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/tests/postgres/test_imports.py
RENAMED
|
File without changes
|
{velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/tests/postgres/test_result.py
RENAMED
|
File without changes
|
{velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/tests/postgres/test_row.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/tests/postgres/test_sequence.py
RENAMED
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/tests/postgres/test_table.py
RENAMED
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/tests/postgres/test_transaction.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/tests/test_cursor_rowcount_fix.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/tests/test_postgres_unchanged.py
RENAMED
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/tests/test_result_caching.py
RENAMED
|
File without changes
|
{velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/db/tests/test_result_sql_aware.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity/misc/tests/test_original_error.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity_python.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity_python.egg-info/entry_points.txt
RENAMED
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.42 → velocity_python-0.1.44}/src/velocity_python.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.42 → velocity_python-0.1.44}/tests/test_sys_modified_count_postgres_demo.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|