Closes #18022: Extend linter (ruff) to enforce line length limit (120 chars) (#18067)

* Enable E501 rule
* Configure ruff formatter
* Reformat migration files to fix line length violations
* Fix various E501 errors
* Move table template code to template_code.py & ignore E501 errors
* Reformat raw SQL
This commit is contained in:
Jeremy Stretch
2024-11-21 15:58:11 -05:00
committed by GitHub
parent af3bfd023c
commit 347b036e62
200 changed files with 5928 additions and 1670 deletions

View File

@@ -8,7 +8,6 @@ import users.models
class Migration(migrations.Migration):
initial = True
dependencies = [
@@ -39,15 +38,33 @@ class Migration(migrations.Migration):
('password', models.CharField(max_length=128)),
('last_login', models.DateTimeField(blank=True, null=True)),
('is_superuser', models.BooleanField(default=False)),
('username', models.CharField(error_messages={'unique': 'A user with that username already exists.'}, max_length=150, unique=True, validators=[django.contrib.auth.validators.UnicodeUsernameValidator()])),
(
'username',
models.CharField(
error_messages={'unique': 'A user with that username already exists.'},
max_length=150,
unique=True,
validators=[django.contrib.auth.validators.UnicodeUsernameValidator()],
),
),
('first_name', models.CharField(blank=True, max_length=150)),
('last_name', models.CharField(blank=True, max_length=150)),
('email', models.EmailField(blank=True, max_length=254)),
('is_staff', models.BooleanField(default=False)),
('is_active', models.BooleanField(default=True)),
('date_joined', models.DateTimeField(default=django.utils.timezone.now)),
('groups', models.ManyToManyField(blank=True, related_name='user_set', related_query_name='user', to='auth.group')),
('user_permissions', models.ManyToManyField(blank=True, related_name='user_set', related_query_name='user', to='auth.permission')),
(
'groups',
models.ManyToManyField(
blank=True, related_name='user_set', related_query_name='user', to='auth.group'
),
),
(
'user_permissions',
models.ManyToManyField(
blank=True, related_name='user_set', related_query_name='user', to='auth.permission'
),
),
],
options={
'verbose_name': 'user',
@@ -64,7 +81,12 @@ class Migration(migrations.Migration):
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False)),
('data', models.JSONField(default=dict)),
('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='config', to=settings.AUTH_USER_MODEL)),
(
'user',
models.OneToOneField(
on_delete=django.db.models.deletion.CASCADE, related_name='config', to=settings.AUTH_USER_MODEL
),
),
],
options={
'verbose_name': 'User Preferences',
@@ -78,10 +100,20 @@ class Migration(migrations.Migration):
('id', models.BigAutoField(primary_key=True, serialize=False)),
('created', models.DateTimeField(auto_now_add=True)),
('expires', models.DateTimeField(blank=True, null=True)),
('key', models.CharField(max_length=40, unique=True, validators=[django.core.validators.MinLengthValidator(40)])),
(
'key',
models.CharField(
max_length=40, unique=True, validators=[django.core.validators.MinLengthValidator(40)]
),
),
('write_enabled', models.BooleanField(default=True)),
('description', models.CharField(blank=True, max_length=200)),
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='tokens', to=settings.AUTH_USER_MODEL)),
(
'user',
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE, related_name='tokens', to=settings.AUTH_USER_MODEL
),
),
],
),
migrations.CreateModel(
@@ -91,11 +123,37 @@ class Migration(migrations.Migration):
('name', models.CharField(max_length=100)),
('description', models.CharField(blank=True, max_length=200)),
('enabled', models.BooleanField(default=True)),
('actions', django.contrib.postgres.fields.ArrayField(base_field=models.CharField(max_length=30), size=None)),
(
'actions',
django.contrib.postgres.fields.ArrayField(base_field=models.CharField(max_length=30), size=None),
),
('constraints', models.JSONField(blank=True, null=True)),
('groups', models.ManyToManyField(blank=True, related_name='object_permissions', to='auth.Group')),
('object_types', models.ManyToManyField(limit_choices_to=models.Q(models.Q(models.Q(('app_label__in', ['account', 'admin', 'auth', 'contenttypes', 'sessions', 'taggit', 'users']), _negated=True), models.Q(('app_label', 'auth'), ('model__in', ['group', 'user'])), models.Q(('app_label', 'users'), ('model__in', ['objectpermission', 'token'])), _connector='OR')), related_name='object_permissions', to='contenttypes.ContentType')),
('users', models.ManyToManyField(blank=True, related_name='object_permissions', to=settings.AUTH_USER_MODEL)),
(
'object_types',
models.ManyToManyField(
limit_choices_to=models.Q(
models.Q(
models.Q(
(
'app_label__in',
['account', 'admin', 'auth', 'contenttypes', 'sessions', 'taggit', 'users'],
),
_negated=True,
),
models.Q(('app_label', 'auth'), ('model__in', ['group', 'user'])),
models.Q(('app_label', 'users'), ('model__in', ['objectpermission', 'token'])),
_connector='OR',
)
),
related_name='object_permissions',
to='contenttypes.ContentType',
),
),
(
'users',
models.ManyToManyField(blank=True, related_name='object_permissions', to=settings.AUTH_USER_MODEL),
),
],
options={
'verbose_name': 'permission',

View File

@@ -5,11 +5,10 @@ import ipam.fields
class Migration(migrations.Migration):
replaces = [
('users', '0002_standardize_id_fields'),
('users', '0003_token_allowed_ips_last_used'),
('users', '0004_netboxgroup_netboxuser')
('users', '0004_netboxgroup_netboxuser'),
]
dependencies = [
@@ -36,7 +35,9 @@ class Migration(migrations.Migration):
migrations.AddField(
model_name='token',
name='allowed_ips',
field=django.contrib.postgres.fields.ArrayField(base_field=ipam.fields.IPNetworkField(), blank=True, null=True, size=None),
field=django.contrib.postgres.fields.ArrayField(
base_field=ipam.fields.IPNetworkField(), blank=True, null=True, size=None
),
),
migrations.AddField(
model_name='token',
@@ -45,8 +46,7 @@ class Migration(migrations.Migration):
),
migrations.CreateModel(
name='NetBoxGroup',
fields=[
],
fields=[],
options={
'verbose_name': 'Group',
'proxy': True,

View File

@@ -19,7 +19,6 @@ def update_content_types(apps, schema_editor):
class Migration(migrations.Migration):
dependencies = [
('users', '0002_squashed_0004'),
('extras', '0113_customfield_rename_object_type'),
@@ -33,24 +32,17 @@ class Migration(migrations.Migration):
name='user',
table=None,
),
# Convert the `id` column to a 64-bit integer (BigAutoField is implied by DEFAULT_AUTO_FIELD)
migrations.RunSQL("ALTER TABLE users_user ALTER COLUMN id TYPE bigint"),
migrations.RunSQL('ALTER TABLE users_user ALTER COLUMN id TYPE bigint'),
# Rename auth_user_* sequences
migrations.RunSQL("ALTER TABLE auth_user_groups_id_seq RENAME TO users_user_groups_id_seq"),
migrations.RunSQL("ALTER TABLE auth_user_id_seq RENAME TO users_user_id_seq"),
migrations.RunSQL("ALTER TABLE auth_user_user_permissions_id_seq RENAME TO users_user_user_permissions_id_seq"),
migrations.RunSQL('ALTER TABLE auth_user_groups_id_seq RENAME TO users_user_groups_id_seq'),
migrations.RunSQL('ALTER TABLE auth_user_id_seq RENAME TO users_user_id_seq'),
migrations.RunSQL('ALTER TABLE auth_user_user_permissions_id_seq RENAME TO users_user_user_permissions_id_seq'),
# Rename auth_user_* indexes
migrations.RunSQL("ALTER INDEX auth_user_pkey RENAME TO users_user_pkey"),
migrations.RunSQL('ALTER INDEX auth_user_pkey RENAME TO users_user_pkey'),
# Hash is deterministic; generated via schema_editor._create_index_name()
migrations.RunSQL("ALTER INDEX auth_user_username_6821ab7c_like RENAME TO users_user_username_06e46fe6_like"),
migrations.RunSQL("ALTER INDEX auth_user_username_key RENAME TO users_user_username_key"),
migrations.RunSQL('ALTER INDEX auth_user_username_6821ab7c_like RENAME TO users_user_username_06e46fe6_like'),
migrations.RunSQL('ALTER INDEX auth_user_username_key RENAME TO users_user_username_key'),
# Update ContentTypes
migrations.RunPython(
code=update_content_types,
reverse_code=migrations.RunPython.noop
),
migrations.RunPython(code=update_content_types, reverse_code=migrations.RunPython.noop),
]

View File

@@ -16,7 +16,6 @@ def update_custom_fields(apps, schema_editor):
class Migration(migrations.Migration):
dependencies = [
('users', '0005_alter_user_table'),
]
@@ -29,7 +28,12 @@ class Migration(migrations.Migration):
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False)),
('name', models.CharField(max_length=150, unique=True)),
('description', models.CharField(blank=True, max_length=200)),
('permissions', models.ManyToManyField(blank=True, related_name='groups', related_query_name='group', to='auth.permission')),
(
'permissions',
models.ManyToManyField(
blank=True, related_name='groups', related_query_name='group', to='auth.permission'
),
),
],
options={
'ordering': ('name',),
@@ -40,17 +44,10 @@ class Migration(migrations.Migration):
('objects', users.models.GroupManager()),
],
),
# Copy existing groups from the old table into the new one
migrations.RunSQL(
"INSERT INTO users_group (SELECT id, name, '' AS description FROM auth_group)"
),
migrations.RunSQL("INSERT INTO users_group (SELECT id, name, '' AS description FROM auth_group)"),
# Update the sequence for group ID values
migrations.RunSQL(
"SELECT setval('users_group_id_seq', (SELECT MAX(id) FROM users_group))"
),
migrations.RunSQL("SELECT setval('users_group_id_seq', (SELECT MAX(id) FROM users_group))"),
# Update the "groups" M2M fields on User & ObjectPermission
migrations.AlterField(
model_name='user',
@@ -62,23 +59,12 @@ class Migration(migrations.Migration):
name='groups',
field=models.ManyToManyField(blank=True, related_name='object_permissions', to='users.group'),
),
# Delete any lingering group assignments for legacy permissions (from before NetBox v2.9)
migrations.RunSQL(
"DELETE from auth_group_permissions"
),
migrations.RunSQL('DELETE from auth_group_permissions'),
# Delete groups from the old table
migrations.RunSQL(
"DELETE from auth_group"
),
migrations.RunSQL('DELETE from auth_group'),
# Update custom fields
migrations.RunPython(
code=update_custom_fields,
reverse_code=migrations.RunPython.noop
),
migrations.RunPython(code=update_custom_fields, reverse_code=migrations.RunPython.noop),
# Delete the proxy model
migrations.DeleteModel(
name='NetBoxGroup',

View File

@@ -4,7 +4,6 @@ from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('core', '0010_gfk_indexes'),
('users', '0006_custom_group_model'),
@@ -14,6 +13,23 @@ class Migration(migrations.Migration):
migrations.AlterField(
model_name='objectpermission',
name='object_types',
field=models.ManyToManyField(limit_choices_to=models.Q(models.Q(models.Q(('app_label__in', ['account', 'admin', 'auth', 'contenttypes', 'sessions', 'taggit', 'users']), _negated=True), models.Q(('app_label', 'auth'), ('model__in', ['group', 'user'])), models.Q(('app_label', 'users'), ('model__in', ['objectpermission', 'token'])), _connector='OR')), related_name='object_permissions', to='core.objecttype'),
field=models.ManyToManyField(
limit_choices_to=models.Q(
models.Q(
models.Q(
(
'app_label__in',
['account', 'admin', 'auth', 'contenttypes', 'sessions', 'taggit', 'users'],
),
_negated=True,
),
models.Q(('app_label', 'auth'), ('model__in', ['group', 'user'])),
models.Q(('app_label', 'users'), ('model__in', ['objectpermission', 'token'])),
_connector='OR',
)
),
related_name='object_permissions',
to='core.objecttype',
),
),
]

View File

@@ -2,7 +2,6 @@ from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('users', '0007_objectpermission_update_object_types'),
]
@@ -24,52 +23,47 @@ class Migration(migrations.Migration):
database_operations=[
# Rename table
migrations.RunSQL(
"ALTER TABLE users_objectpermission_groups"
" RENAME TO users_group_object_permissions"
'ALTER TABLE users_objectpermission_groups' ' RENAME TO users_group_object_permissions'
),
migrations.RunSQL(
"ALTER TABLE users_objectpermission_groups_id_seq"
" RENAME TO users_group_object_permissions_id_seq"
'ALTER TABLE users_objectpermission_groups_id_seq'
' RENAME TO users_group_object_permissions_id_seq'
),
# Rename constraints
migrations.RunSQL(
"ALTER TABLE users_group_object_permissions RENAME CONSTRAINT "
"users_objectpermissi_group_id_fb7ba6e0_fk_users_gro TO "
"users_group_object_p_group_id_90dd183a_fk_users_gro"
'ALTER TABLE users_group_object_permissions RENAME CONSTRAINT '
'users_objectpermissi_group_id_fb7ba6e0_fk_users_gro TO '
'users_group_object_p_group_id_90dd183a_fk_users_gro'
),
# Fix for #15698: Drop & recreate constraint which may not exist
migrations.RunSQL(
"ALTER TABLE users_group_object_permissions DROP CONSTRAINT IF EXISTS "
"users_objectpermissi_objectpermission_id_2f7cc117_fk_users_obj"
'ALTER TABLE users_group_object_permissions DROP CONSTRAINT IF EXISTS '
'users_objectpermissi_objectpermission_id_2f7cc117_fk_users_obj'
),
migrations.RunSQL(
"ALTER TABLE users_group_object_permissions ADD CONSTRAINT "
"users_group_object_p_objectpermission_id_dd489dc4_fk_users_obj "
"FOREIGN KEY (objectpermission_id) REFERENCES users_objectpermission(id) "
"DEFERRABLE INITIALLY DEFERRED"
'ALTER TABLE users_group_object_permissions ADD CONSTRAINT '
'users_group_object_p_objectpermission_id_dd489dc4_fk_users_obj '
'FOREIGN KEY (objectpermission_id) REFERENCES users_objectpermission(id) '
'DEFERRABLE INITIALLY DEFERRED'
),
# Rename indexes
migrations.RunSQL(
"ALTER INDEX users_objectpermission_groups_pkey "
" RENAME TO users_group_object_permissions_pkey"
'ALTER INDEX users_objectpermission_groups_pkey ' ' RENAME TO users_group_object_permissions_pkey'
),
migrations.RunSQL(
"ALTER INDEX users_objectpermission_g_objectpermission_id_grou_3b62a39c_uniq "
" RENAME TO users_group_object_permi_group_id_objectpermissio_db1f8cbe_uniq"
'ALTER INDEX users_objectpermission_g_objectpermission_id_grou_3b62a39c_uniq '
' RENAME TO users_group_object_permi_group_id_objectpermissio_db1f8cbe_uniq'
),
migrations.RunSQL(
"ALTER INDEX users_objectpermission_groups_group_id_fb7ba6e0"
" RENAME TO users_group_object_permissions_group_id_90dd183a"
'ALTER INDEX users_objectpermission_groups_group_id_fb7ba6e0'
' RENAME TO users_group_object_permissions_group_id_90dd183a'
),
migrations.RunSQL(
"ALTER INDEX users_objectpermission_groups_objectpermission_id_2f7cc117"
" RENAME TO users_group_object_permissions_objectpermission_id_dd489dc4"
'ALTER INDEX users_objectpermission_groups_objectpermission_id_2f7cc117'
' RENAME TO users_group_object_permissions_objectpermission_id_dd489dc4'
),
]
],
),
# Flip M2M assignments for ObjectPermission to Users
migrations.SeparateDatabaseAndState(
state_operations=[
@@ -86,49 +80,44 @@ class Migration(migrations.Migration):
database_operations=[
# Rename table
migrations.RunSQL(
"ALTER TABLE users_objectpermission_users"
" RENAME TO users_user_object_permissions"
'ALTER TABLE users_objectpermission_users' ' RENAME TO users_user_object_permissions'
),
migrations.RunSQL(
"ALTER TABLE users_objectpermission_users_id_seq"
" RENAME TO users_user_object_permissions_id_seq"
'ALTER TABLE users_objectpermission_users_id_seq' ' RENAME TO users_user_object_permissions_id_seq'
),
# Rename constraints
migrations.RunSQL(
"ALTER TABLE users_user_object_permissions RENAME CONSTRAINT "
"users_objectpermission_users_user_id_16c0905d_fk_auth_user_id TO "
"users_user_object_permissions_user_id_9d647aac_fk_users_user_id"
'ALTER TABLE users_user_object_permissions RENAME CONSTRAINT '
'users_objectpermission_users_user_id_16c0905d_fk_auth_user_id TO '
'users_user_object_permissions_user_id_9d647aac_fk_users_user_id'
),
# Fix for #15698: Drop & recreate constraint which may not exist
migrations.RunSQL(
"ALTER TABLE users_user_object_permissions DROP CONSTRAINT IF EXISTS "
"users_objectpermissi_objectpermission_id_78a9c2e6_fk_users_obj"
'ALTER TABLE users_user_object_permissions DROP CONSTRAINT IF EXISTS '
'users_objectpermissi_objectpermission_id_78a9c2e6_fk_users_obj'
),
migrations.RunSQL(
"ALTER TABLE users_user_object_permissions ADD CONSTRAINT "
"users_user_object_pe_objectpermission_id_29b431b4_fk_users_obj "
"FOREIGN KEY (objectpermission_id) REFERENCES users_objectpermission(id) "
"DEFERRABLE INITIALLY DEFERRED"
'ALTER TABLE users_user_object_permissions ADD CONSTRAINT '
'users_user_object_pe_objectpermission_id_29b431b4_fk_users_obj '
'FOREIGN KEY (objectpermission_id) REFERENCES users_objectpermission(id) '
'DEFERRABLE INITIALLY DEFERRED'
),
# Rename indexes
migrations.RunSQL(
"ALTER INDEX users_objectpermission_users_pkey "
" RENAME TO users_user_object_permissions_pkey"
'ALTER INDEX users_objectpermission_users_pkey ' ' RENAME TO users_user_object_permissions_pkey'
),
migrations.RunSQL(
"ALTER INDEX users_objectpermission_u_objectpermission_id_user_3a7db108_uniq "
" RENAME TO users_user_object_permis_user_id_objectpermission_0a98550e_uniq"
'ALTER INDEX users_objectpermission_u_objectpermission_id_user_3a7db108_uniq '
' RENAME TO users_user_object_permis_user_id_objectpermission_0a98550e_uniq'
),
migrations.RunSQL(
"ALTER INDEX users_objectpermission_users_user_id_16c0905d"
" RENAME TO users_user_object_permissions_user_id_9d647aac"
'ALTER INDEX users_objectpermission_users_user_id_16c0905d'
' RENAME TO users_user_object_permissions_user_id_9d647aac'
),
migrations.RunSQL(
"ALTER INDEX users_objectpermission_users_objectpermission_id_78a9c2e6"
" RENAME TO users_user_object_permissions_objectpermission_id_29b431b4"
'ALTER INDEX users_objectpermission_users_objectpermission_id_78a9c2e6'
' RENAME TO users_user_object_permissions_objectpermission_id_29b431b4'
),
]
],
),
]

View File

@@ -18,17 +18,13 @@ def update_content_types(apps, schema_editor):
class Migration(migrations.Migration):
dependencies = [
('users', '0008_flip_objectpermission_assignments'),
]
operations = [
# Update ContentTypes
migrations.RunPython(
code=update_content_types,
reverse_code=migrations.RunPython.noop
),
migrations.RunPython(code=update_content_types, reverse_code=migrations.RunPython.noop),
migrations.AlterField(
model_name='objectpermission',
name='object_types',

View File

@@ -286,9 +286,15 @@ class TokenTestCase(TestCase, BaseFilterSetTests):
future_date = make_aware(datetime.datetime(3000, 1, 1))
past_date = make_aware(datetime.datetime(2000, 1, 1))
tokens = (
Token(user=users[0], key=Token.generate_key(), expires=future_date, write_enabled=True, description='foobar1'),
Token(user=users[1], key=Token.generate_key(), expires=future_date, write_enabled=True, description='foobar2'),
Token(user=users[2], key=Token.generate_key(), expires=past_date, write_enabled=False),
Token(
user=users[0], key=Token.generate_key(), expires=future_date, write_enabled=True, description='foobar1'
),
Token(
user=users[1], key=Token.generate_key(), expires=future_date, write_enabled=True, description='foobar2'
),
Token(
user=users[2], key=Token.generate_key(), expires=past_date, write_enabled=False
),
)
Token.objects.bulk_create(tokens)

View File

@@ -23,11 +23,16 @@ class UserTestCase(
@classmethod
def setUpTestData(cls):
users = (
User(username='username1', first_name='first1', last_name='last1', email='user1@foo.com', password='pass1xxx'),
User(username='username2', first_name='first2', last_name='last2', email='user2@foo.com', password='pass2xxx'),
User(username='username3', first_name='first3', last_name='last3', email='user3@foo.com', password='pass3xxx'),
User(
username='username1', first_name='first1', last_name='last1', email='user1@foo.com', password='pass1xxx'
),
User(
username='username2', first_name='first2', last_name='last2', email='user2@foo.com', password='pass2xxx'
),
User(
username='username3', first_name='first3', last_name='last3', email='user3@foo.com', password='pass3xxx'
),
)
User.objects.bulk_create(users)