Skip to content

Conversation

@sinhasubham
Copy link

No description provided.

@product-auto-label product-auto-label bot added the api: spanner Issues related to the googleapis/python-spanner-django API. label Feb 6, 2026
Comment on lines 9 to 57
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
chunk: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
include:
- chunk: 0
apps: admin_changelist admin_ordering aggregation distinct_on_fields expressions_window fixtures_model_package datetimes custom_methods generic_inline_admin field_defaults datatypes empty m2o_recursive many_to_one_null migration_test_data_persistence admin_docs invalid_models_tests migrate_signals model_forms.test_uuid model_forms.test_modelchoicefield syndication_tests view_tests update test_utils select_related_onetoone sessions_tests
- chunk: 1
apps: db_functions save_delete_hooks get_object_or_404 model_indexes custom_pk indexes transaction_hooks constraints schema custom_columns i18n from_db_value sites_tests mutually_referential model_package defer_regress update_only_fields backends redirects_tests expressions get_or_create foreign_object generic_relations_regress many_to_many select_related generic_relations queryset_pickle model_inheritance
- chunk: 2
apps: model_options known_related_objects m2m_signals delete_regress fixtures generic_views model_inheritance_regress nested_foreign_keys lookup delete model_formsets
- chunk: 3
apps: signals or_lookups m2m_through_regress filtered_relation servers m2m_through fixtures_regress timezones model_forms.tests
- chunk: 4
apps: introspection multiple_database null_fk_ordering ordering m2m_intermediary null_fk max_lengths dates force_insert_update test_client m2m_multiple test_client_regress sitemaps_tests admin_inlines transactions null_queries test_runner m2m_and_m2o prefetch_related m2m_regress file_uploads sites_framework auth_tests forms_tests inline_formsets order_with_respect_to contenttypes_tests defer
- chunk: 5
apps: file_storage m2m_recursive reverse_lookup managers_regress basic annotations unmanaged_models string_lookup aggregation_regress reserved_names select_for_update many_to_one cache select_related_regress flatpages_tests model_formsets_regress
- chunk: 6
apps: model_fields queries.test_bulk_update queries.test_explain
- chunk: 7
apps: queries.test_iterator queries.test_q queries.test_query queries.test_qs_combinators
- chunk: 8
apps: inspectdb custom_managers migrations validation get_earliest_or_latest proxy_model_inheritance one_to_one raw_query bulk_create
- chunk: 9
apps: queries.tests

services:
emulator:
image: gcr.io/cloud-spanner-emulator/emulator:latest
ports:
- 9010:9010

steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: 3.10
- name: Run Django tests
run: sh django_test_suite_5.2.sh
env:
SPANNER_EMULATOR_HOST: localhost:9010
GOOGLE_CLOUD_PROJECT: emulator-test-project
GOOGLE_CLOUD_TESTS_CREATE_SPANNER_INSTANCE: true
RUNNING_SPANNER_BACKEND_TESTS: 1
SPANNER_TEST_INSTANCE: google-cloud-django-backend-tests
DJANGO_TEST_APPS: ${{ matrix.apps }}

Check warning

Code scanning / CodeQL

Workflow does not contain permissions Medium

Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {contents: read}
- Fix bulk_batch_size in operations.py to respect max_query_params per object.
- Remove _unique_sql in schema.py to fix TypeError and infinite recursion.
…lters

- In , set:
  -
  -
- In , implemented no-op savepoint methods (, etc.) to prevent  when client-side errors (like ) occur inside atomic blocks. This allows Django to gracefully rollback logically without breaking the connection, as Spanner transactions are not invalidated by 0-row updates.
@sinhasubham sinhasubham force-pushed the django_5_2 branch 13 times, most recently from 5da98fd to 57584e4 Compare February 9, 2026 05:09
@sinhasubham sinhasubham force-pushed the django_5_2 branch 2 times, most recently from c482f52 to 2c47575 Compare February 9, 2026 19:16
- Moved  and related methods from  (incorrect location) to  (correct location).
- This ensures Django uses these no-op methods (SELECT 1) instead of generating invalid  SQL for Spanner.
- Kept  in features to maintain the fix for .
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

api: spanner Issues related to the googleapis/python-spanner-django API.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant