Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Added dockstrings #62

Open
wants to merge 11 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions .github/workflows/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: Django CI/CD

on:
push:
branches: ["main"]
pull_request:
branches: ["main"]

jobs:
build:
runs-on: ubuntu-latest
strategy:
max-parallel: 4
matrix:
python-version: [3.7, 3.8, 3.9]

env:
MODE: ${{ secrets.MODE }}

steps:
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v3
with:
python-version: ${{ matrix.python-version }}
- name: Install Dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
- name: Run Tests
run: |
python manage.py test
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
**/__pycache__
*.pyc
venv
.venv/
venv/
3 changes: 3 additions & 0 deletions .idea/.gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

14 changes: 14 additions & 0 deletions .idea/EmeryKroquet-OC_P13_orange_County_Lettings.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

14 changes: 14 additions & 0 deletions .idea/inspectionProfiles/Project_Default.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/inspectionProfiles/profiles_settings.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 10 additions & 0 deletions .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions .idea/modules.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Empty file added home/__init__.py
Empty file.
3 changes: 3 additions & 0 deletions home/admin.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from django.contrib import admin

# Register your models here.
7 changes: 7 additions & 0 deletions home/apps.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
from django.apps import AppConfig


class HomeConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'home'
test_module = 'home.tests'
Empty file added home/migrations/__init__.py
Empty file.
3 changes: 3 additions & 0 deletions home/models.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from django.db import models

# Create your models here.
Empty file added home/tests/__init__.py
Empty file.
38 changes: 38 additions & 0 deletions home/tests/test_view.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
from django.test import TestCase
from django.urls import reverse
from django.http import HttpRequest

from home.views import index


class TestIndexView(TestCase):
def _extracted_from_test_returns_200_status_code_for_get_request_3(self):
url = reverse('home:index')
request = HttpRequest()
return self.client.get(url)

# Returns a 200 status code for a GET request
def test_handles_get_requests(self):
# Arrange
from django.shortcuts import render
request = type('Request', (), {})()

# Act
response = index(request)

# Assert
assert response.status_code == 200

def test_handles_post_requests(self):
# Arrange
from django.shortcuts import render
request = type('Request', (), {})()
request.method = 'POST'

# Act
response = index(request)

# Assert
assert response.status_code == 200

# Renders the 'home/index.html' template for a GET request
7 changes: 7 additions & 0 deletions home/urls.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
from django.urls import path
from . import views

urlpatterns = [
path('', views.index, name='index'),

]
5 changes: 5 additions & 0 deletions home/views.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
from django.shortcuts import render


def index(request):
return render(request, 'home/index.html')
Empty file added lettings/__init__.py
Empty file.
8 changes: 8 additions & 0 deletions lettings/admin.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
from django.contrib import admin
from .models import Letting # Importez le modèle Letting de l'application lettings
from .models import Address


admin.site.register(Letting) # Enregistrez le modèle Letting dans l'interface d'administration

admin.site.register(Address)
7 changes: 7 additions & 0 deletions lettings/apps.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
from django.apps import AppConfig


class LettingsConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'lettings'
test_module = 'lettings.tests'
36 changes: 36 additions & 0 deletions lettings/migrations/0001_initial.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Generated by Django 4.2.7 on 2023-11-07 12:41

import django.core.validators
from django.db import migrations, models
import django.db.models.deletion


class Migration(migrations.Migration):

initial = True

dependencies = [
]

operations = [
migrations.CreateModel(
name='Address',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('number', models.PositiveIntegerField(validators=[django.core.validators.MaxValueValidator(9999)])),
('street', models.CharField(max_length=64)),
('city', models.CharField(max_length=64)),
('state', models.CharField(max_length=2, validators=[django.core.validators.MinLengthValidator(2)])),
('zip_code', models.PositiveIntegerField(validators=[django.core.validators.MaxValueValidator(99999)])),
('country_iso_code', models.CharField(max_length=3, validators=[django.core.validators.MinLengthValidator(3)])),
],
),
migrations.CreateModel(
name='Letting',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('title', models.CharField(max_length=256)),
('address', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to='lettings.address')),
],
),
]
19 changes: 19 additions & 0 deletions lettings/migrations/0002_alter_letting_address.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Generated by Django 4.2.7 on 2023-11-08 13:53

from django.db import migrations, models
import django.db.models.deletion


class Migration(migrations.Migration):

dependencies = [
('lettings', '0001_initial'),
]

operations = [
migrations.AlterField(
model_name='letting',
name='address',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='lettings.address'),
),
]
Empty file added lettings/migrations/__init__.py
Empty file.
62 changes: 62 additions & 0 deletions lettings/models.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
from django.db import models
from django.core.validators import MaxValueValidator, MinLengthValidator


class Address(models.Model):
"""
Model representing an address.

Attributes:
number (PositiveIntegerField): The number of the address.
street (CharField): The street of the address.
city (CharField): The city of the address.
state (CharField): The state of the address.
zip_code (PositiveIntegerField): The zip code of the address.
country_iso_code (CharField): The ISO code of the country.

Methods:
__str__: Returns a string representation of the address.
"""

number = models.PositiveIntegerField(validators=[MaxValueValidator(9999)])
street = models.CharField(max_length=64)
city = models.CharField(max_length=64)
state = models.CharField(max_length=2, validators=[MinLengthValidator(2)])
zip_code = models.PositiveIntegerField(validators=[MaxValueValidator(99999)])
country_iso_code = models.CharField(max_length=3, validators=[MinLengthValidator(3)])

def __str__(self):
"""
Return a string representation of the object.

Returns:
str: The string representation of the object.
"""

return f'{self.number} {self.street}'


class Letting(models.Model):
"""
Model representing a letting.

Attributes:
title (CharField): The title of the letting.
address (ForeignKey): The address associated with the letting.

Methods:
__str__: Returns a string representation of the letting.
"""

title = models.CharField(max_length=256)
address = models.ForeignKey(Address, on_delete=models.CASCADE)

def __str__(self):
"""
Return a string representation of the object.

Returns:
str: The string representation of the object.
"""

return self.title
Empty file added lettings/tests/__init__.py
Empty file.
Loading