Skip to content

Commit 7098828

Browse files
martin056RadoRado
authored andcommitted
Add test_examples app
1 parent 68d6b1a commit 7098828

File tree

11 files changed

+176
-6
lines changed

11 files changed

+176
-6
lines changed

config/django/base.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
'styleguide_example.api.apps.ApiConfig',
4141
'styleguide_example.users.apps.UsersConfig',
4242
'styleguide_example.errors.apps.ErrorsConfig',
43+
'styleguide_example.test_examples.apps.TestExamplesConfig',
4344
]
4445

4546
THIRD_PARTY_APPS = [
@@ -105,12 +106,12 @@
105106
if os.environ.get('GITHUB_WORKFLOW'):
106107
DATABASES = {
107108
'default': {
108-
'ENGINE': 'django.db.backends.postgresql',
109-
'NAME': 'github_actions',
110-
'USER': 'postgres',
111-
'PASSWORD': 'postgres',
112-
'HOST': '127.0.0.1',
113-
'PORT': '5432',
109+
'ENGINE': 'django.db.backends.postgresql',
110+
'NAME': 'github_actions',
111+
'USER': 'postgres',
112+
'PASSWORD': 'postgres',
113+
'HOST': '127.0.0.1',
114+
'PORT': '5432',
114115
}
115116
}
116117

styleguide_example/common/apps.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,5 @@
22

33

44
class CommonConfig(AppConfig):
5+
default_auto_field = 'django.db.models.BigAutoField'
56
name = 'styleguide_example.common'
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# Generated by Django 3.2.9 on 2021-11-18 09:46
2+
3+
from django.db import migrations, models
4+
5+
6+
class Migration(migrations.Migration):
7+
8+
dependencies = [
9+
('common', '0001_initial'),
10+
]
11+
12+
operations = [
13+
migrations.AlterField(
14+
model_name='randommodel',
15+
name='id',
16+
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
17+
),
18+
]

styleguide_example/test_examples/__init__.py

Whitespace-only changes.
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
from django.contrib import admin
2+
3+
# Register your models here.
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
from django.apps import AppConfig
2+
3+
4+
class TestExamplesConfig(AppConfig):
5+
default_auto_field = 'django.db.models.BigAutoField'
6+
name = 'styleguide_example.test_examples'
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
# Generated by Django 3.2.9 on 2021-11-18 09:46
2+
3+
from django.db import migrations, models
4+
import django.db.models.deletion
5+
import django.db.models.expressions
6+
import uuid
7+
8+
9+
class Migration(migrations.Migration):
10+
11+
initial = True
12+
13+
dependencies = [
14+
]
15+
16+
operations = [
17+
migrations.CreateModel(
18+
name='School',
19+
fields=[
20+
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
21+
('name', models.CharField(max_length=255)),
22+
('slug', models.SlugField(max_length=255, unique=True)),
23+
],
24+
),
25+
migrations.CreateModel(
26+
name='Student',
27+
fields=[
28+
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
29+
('email', models.EmailField(max_length=255)),
30+
('identifier', models.UUIDField(default=uuid.uuid4)),
31+
('school', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='students', to='test_examples.school')),
32+
],
33+
options={
34+
'unique_together': {('identifier', 'school'), ('email', 'school')},
35+
},
36+
),
37+
migrations.CreateModel(
38+
name='SchoolClass',
39+
fields=[
40+
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
41+
('name', models.CharField(max_length=255)),
42+
('slug', models.SlugField(max_length=255)),
43+
('school', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='school_classes', to='test_examples.school')),
44+
],
45+
options={
46+
'unique_together': {('slug', 'school')},
47+
},
48+
),
49+
migrations.CreateModel(
50+
name='Roster',
51+
fields=[
52+
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
53+
('start_date', models.DateField()),
54+
('end_date', models.DateField()),
55+
('active', models.BooleanField(default=True)),
56+
('deactivated_at', models.DateField(null=True)),
57+
('school_class', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='rosters', to='test_examples.schoolclass')),
58+
('student', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='rosters', to='test_examples.student')),
59+
],
60+
),
61+
migrations.AddConstraint(
62+
model_name='roster',
63+
constraint=models.CheckConstraint(check=models.Q(('start_date__lt', django.db.models.expressions.F('end_date'))), name='roster_start_before_end'),
64+
),
65+
]

styleguide_example/test_examples/migrations/__init__.py

Whitespace-only changes.
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
from uuid import uuid4
2+
3+
from django.db import models
4+
from django.db.models.query import F, Q
5+
6+
7+
class School(models.Model):
8+
name = models.CharField(max_length=255)
9+
slug = models.SlugField(max_length=255, unique=True)
10+
11+
def __str__(self):
12+
return self.name
13+
14+
15+
class Student(models.Model):
16+
email = models.EmailField(max_length=255)
17+
identifier = models.UUIDField(default=uuid4)
18+
school = models.ForeignKey(School, related_name='students', on_delete=models.CASCADE)
19+
20+
class Meta:
21+
unique_together = (
22+
('email', 'school'),
23+
('identifier', 'school'),
24+
)
25+
26+
def __str__(self):
27+
return f'Student {self.email} ({self.identifier})'
28+
29+
30+
class SchoolClass(models.Model):
31+
name = models.CharField(max_length=255)
32+
slug = models.SlugField(max_length=255)
33+
school = models.ForeignKey(School, related_name='school_classes', on_delete=models.CASCADE)
34+
35+
class Meta:
36+
unique_together = (
37+
('slug', 'school'),
38+
)
39+
40+
41+
class Roster(models.Model):
42+
student = models.ForeignKey(Student, related_name='rosters', on_delete=models.CASCADE)
43+
school_class = models.ForeignKey(SchoolClass, related_name='rosters', on_delete=models.CASCADE)
44+
45+
start_date = models.DateField()
46+
end_date = models.DateField()
47+
48+
active = models.BooleanField(default=True)
49+
deactivated_at = models.DateField(null=True)
50+
51+
class Meta:
52+
constraints = [
53+
models.CheckConstraint(
54+
name="roster_start_before_end",
55+
check=Q(start_date__lt=F("end_date"))
56+
)
57+
]

styleguide_example/users/apps.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,5 @@
22

33

44
class UsersConfig(AppConfig):
5+
default_auto_field = 'django.db.models.BigAutoField'
56
name = 'styleguide_example.users'

0 commit comments

Comments
 (0)