|
6 | 6 |
|
7 | 7 |
|
8 | 8 | from .models import Author
|
9 |
| -from django.db import NotSupportedError |
| 9 | +from django.db import NotSupportedError, connection |
10 | 10 | from django.db.models import Index
|
11 |
| -from django.db.models.fields import IntegerField |
| 11 | +from django.db.models.fields import AutoField, IntegerField |
| 12 | +from django_spanner import gen_rand_int64 |
12 | 13 | from django_spanner.schema import DatabaseSchemaEditor
|
13 | 14 | from tests._helpers import HAS_OPENTELEMETRY_INSTALLED
|
14 | 15 | from tests.unit.django_spanner.simple_test import SpannerSimpleTestClass
|
@@ -404,3 +405,31 @@ def constraint_names(*args, **kwargs):
|
404 | 405 | new_field.set_attributes_from_name("author_num")
|
405 | 406 | with self.assertRaises(NotSupportedError):
|
406 | 407 | schema_editor.alter_field(Author, old_field, new_field)
|
| 408 | + |
| 409 | + def test_autofield_no_default(self): |
| 410 | + """Spanner, default is not provided.""" |
| 411 | + field = AutoField(name="field_name") |
| 412 | + assert gen_rand_int64 == field.default |
| 413 | + |
| 414 | + def test_autofield_default(self): |
| 415 | + """Spanner, default provided.""" |
| 416 | + mock_func = mock.Mock() |
| 417 | + field = AutoField
9ED0
(name="field_name", default=mock_func) |
| 418 | + assert gen_rand_int64 != field.default |
| 419 | + assert mock_func == field.default |
| 420 | + |
| 421 | + def test_autofield_not_spanner(self): |
| 422 | + """Not Spanner, default not provided.""" |
| 423 | + connection.settings_dict["ENGINE"] = "another_db" |
| 424 | + field = AutoField(name="field_name") |
| 425 | + assert gen_rand_int64 != field.default |
| 426 | + connection.settings_dict["ENGINE"] = "django_spanner" |
| 427 | + |
| 428 | + def test_autofield_not_spanner_w_default(self): |
| 429 | + """Not Spanner, default provided.""" |
| 430 | + connection.settings_dict["ENGINE"] = "another_db" |
| 431 | + mock_func = mock.Mock() |
| 432 | + field = AutoField(name="field_name", default=mock_func) |
| 433 | + assert gen_rand_int64 != field.default |
| 434 | + assert mock_func == field.default |
| 435 | + connection.settings_dict["ENGINE"] = "django_spanner" |
0 commit comments