diff --git a/ClaireMiller/__init__.py b/ClaireMiller/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/ClaireMiller/admin.py b/ClaireMiller/admin.py new file mode 100644 index 0000000..4339d16 --- /dev/null +++ b/ClaireMiller/admin.py @@ -0,0 +1,6 @@ +# -*- coding: utf-8 -*- +from django.contrib import admin +from .models import ClaireMiller + +# Register your models here. +admin.site.register(ClaireMiller) \ No newline at end of file diff --git a/ClaireMiller/apps.py b/ClaireMiller/apps.py new file mode 100644 index 0000000..2e05762 --- /dev/null +++ b/ClaireMiller/apps.py @@ -0,0 +1,8 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.apps import AppConfig + + +class ClairemillerConfig(AppConfig): + name = 'ClaireMiller' diff --git a/ClaireMiller/migrations/0001_initial.py b/ClaireMiller/migrations/0001_initial.py new file mode 100644 index 0000000..bcc0bbb --- /dev/null +++ b/ClaireMiller/migrations/0001_initial.py @@ -0,0 +1,31 @@ +# Generated by Django 2.2.4 on 2019-08-15 23:31 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('passengers', '0007_delete_passenger'), + ] + + operations = [ + migrations.CreateModel( + name='ClaireMiller', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(default='Claire Miller', max_length=256)), + ('job', models.CharField(default='Flight Attendant', max_length=20)), + ('imageUrl', models.CharField(default='/ClaireMiller/src/clare_profile.jpg', max_length=255)), + ('flavorText', models.CharField(default='Claire Miller is a determined, resourceful woman with the strength to survive any catastrophe', max_length=255)), + ('carry_on', models.ForeignKey(default=None, on_delete=django.db.models.deletion.SET_DEFAULT, related_name='carry_on', to='passengers.CarryOn')), + ('personal_item', models.ForeignKey(default=None, on_delete=django.db.models.deletion.SET_DEFAULT, related_name='personal_item', to='passengers.CarryOn')), + ], + options={ + 'abstract': False, + }, + ), + ] diff --git a/ClaireMiller/migrations/__init__.py b/ClaireMiller/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/ClaireMiller/models.py b/ClaireMiller/models.py new file mode 100644 index 0000000..ba2cb98 --- /dev/null +++ b/ClaireMiller/models.py @@ -0,0 +1,38 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import models +from passengers.models import Passenger + + +# Create your models here. +class ClaireMiller(Passenger): + + #Should default to Claire Miller + name = models.CharField( + max_length=256, + default='Claire Miller', + ) + + #Job could link to a Jobs table, should give the person some 'skills' + job = models.CharField( + max_length=20, + default='Flight Attendant', + ) + + #Default the image to the image created in the src filie + imageUrl = models.CharField( + max_length=255, + default='/ClaireMiller/src/clare_profile.jpg', + ) + + #Details about the character + flavorText = models.CharField( + max_length=255, + default='Claire Miller is a determined, resourceful woman with the strength to survive any catastrophe' + ) + + def __str__(self): + return self.name + + diff --git a/ClaireMiller/src/clare_profile.jpg b/ClaireMiller/src/clare_profile.jpg new file mode 100644 index 0000000..e0dc844 Binary files /dev/null and b/ClaireMiller/src/clare_profile.jpg differ diff --git a/ClaireMiller/tests.py b/ClaireMiller/tests.py new file mode 100644 index 0000000..1770d3f --- /dev/null +++ b/ClaireMiller/tests.py @@ -0,0 +1,32 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.test import TestCase +from .models import ClaireMiller +from passengers.models import CarryOn + +# Create your tests here. +class ClaireMillerTestCase(TestCase): + def setUp(self): + potato = CarryOn.objects.create(name="potato") + neckPillow = CarryOn.objects.create(name="neckPillow") + clare = ClaireMiller.objects.create( + personal_item = neckPillow, + carry_on = potato + ) + + def test_clare_name(self): + clare = ClaireMiller.objects.get(name='Claire Miller') + self.assertEqual(clare.name, 'Claire Miller') + + def test_clare_job(self): + clare = ClaireMiller.objects.get(name='Claire Miller') + self.assertEqual(clare.job, 'Flight Attendant') + + def test_clare_flavorText(self): + clare = ClaireMiller.objects.get(name='Claire Miller') + self.assertEqual(clare.flavorText, 'Claire Miller is a determined, resourceful woman with the strength to survive any catastrophe') + + def test_clare_image_url(self): + clare = ClaireMiller.objects.get(name='Claire Miller') + self.assertEqual(clare.imageUrl, '/ClaireMiller/src/clare_profile.jpg') \ No newline at end of file diff --git a/ClaireMiller/views.py b/ClaireMiller/views.py new file mode 100644 index 0000000..e784a0b --- /dev/null +++ b/ClaireMiller/views.py @@ -0,0 +1,6 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.shortcuts import render + +# Create your views here. diff --git a/manage.py b/manage.py index 72b748e..6ec49c8 100755 --- a/manage.py +++ b/manage.py @@ -1,21 +1,24 @@ #!/usr/bin/env python """Django's command-line utility for administrative tasks.""" +#!/usr/bin/env python import os import sys - -def main(): - os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'snakes_on_plane_project.settings') +if __name__ == "__main__": + os.environ.setdefault("DJANGO_SETTINGS_MODULE", "snakes_on_plane_project.settings") try: from django.core.management import execute_from_command_line - except ImportError as exc: - raise ImportError( - "Couldn't import Django. Are you sure it's installed and " - "available on your PYTHONPATH environment variable? Did you " - "forget to activate a virtual environment?" - ) from exc - execute_from_command_line(sys.argv) - - -if __name__ == '__main__': - main() + except ImportError: + # The above import may fail for some other reason. Ensure that the + # issue is really that Django is missing to avoid masking other + # exceptions on Python 2. + try: + import django + except ImportError: + raise ImportError( + "Couldn't import Django. Are you sure it's installed and " + "available on your PYTHONPATH environment variable? Did you " + "forget to activate a virtual environment?" + ) + raise + execute_from_command_line(sys.argv) \ No newline at end of file diff --git a/passengers/admin.py b/passengers/admin.py index 7ff949a..aabf14f 100644 --- a/passengers/admin.py +++ b/passengers/admin.py @@ -2,4 +2,4 @@ from .models import CarryOn # Register your models here. -admin.site.register(CarryOn) \ No newline at end of file +admin.site.register(CarryOn) diff --git a/passengers/apps.py b/passengers/apps.py index 7fba9ae..f49e563 100644 --- a/passengers/apps.py +++ b/passengers/apps.py @@ -1,5 +1,4 @@ from django.apps import AppConfig - class PassengersConfig(AppConfig): name = 'passengers' diff --git a/passengers/models.py b/passengers/models.py index 1b02434..e63b1fb 100644 --- a/passengers/models.py +++ b/passengers/models.py @@ -5,7 +5,7 @@ class CarryOn(models.Model): attack = models.IntegerField(default=100) def __str__(self): - return f'{self.name} - {self.attack}' + return self.name class Passenger(models.Model): name = models.CharField(max_length=256) diff --git a/passengers/tests.py b/passengers/tests.py index 8dd83e6..32d4df9 100644 --- a/passengers/tests.py +++ b/passengers/tests.py @@ -5,7 +5,6 @@ class CarryOnTestCase(TestCase): def setUp(self): rake = CarryOn.objects.create(name="rake") - def test_rake_name(self): rake = CarryOn.objects.get(name = "rake") self.assertEqual(rake.name, "rake") diff --git a/snakes_on_plane_project/settings.py b/snakes_on_plane_project/settings.py index 995cbec..f172a74 100644 --- a/snakes_on_plane_project/settings.py +++ b/snakes_on_plane_project/settings.py @@ -38,6 +38,7 @@ 'django.contrib.messages', 'django.contrib.staticfiles', 'passengers.apps.PassengersConfig', + 'ClaireMiller.apps.ClairemillerConfig', ] MIDDLEWARE = [