I've read and reread the tutorial and I'm working on writing a very simple 
banking app by copying and modifying what's in the tutorial. I've started a 
new project and copied what was on the first two pages of the tutorial and 
I've written a new models file. Make migrations works okay with the new 
models. I tried testing these new models using the test below and the 
console came up with an attribute error. Did I make a stupid mistake 
somewhere? Any help would be much appreciated.

Traceback (most recent call last):
  File "/home/DJapps/banking/mybank/banking/test_models.py", line 12, in 
test_animals_can_speak
    self.assertEqual(person.get_first_name(), 'Bob')
AttributeError: 'Person' object has no attribute 'get_first_name'


from django.test import TestCase
from banking.models import Person

class PersonTestCase(TestCase):
    def setUp(self):
        Person.objects.create(first_name="Bob", last_name="Smith", 
login_name="myname", password="Dog")

    def test_animals_can_speak(self):
        """Animals that can speak are correctly identified"""
        person = Person.objects.get(first_name="Bob")
        #person = mommy.make(Person)
        self.assertEqual(person.get_first_name(), 'Bob')
        #self.assertEqual(person.get_last_name(), 'Smith')
        #self.assertEqual(person.get_login_name(), 'myname')
        #self.assertEqual(person.get_password(), 'Dog')
        #self.assertEqual(person._str__, person_text)

New models...

from django.db import models

# Create your models here.
class Person(models.Model):
    first_name = models.CharField(max_length=4,default="Bob")
    last_name = models.CharField(max_length=6,default="Smith")
    login_name = models.CharField(max_length=3,default="me")
    password = models.CharField(max_length=7, default="password")
    person_text = models.CharField(max_length=10, default="Bob Smith") 
    
def get_first_name(self):
    return self.first_name

def get_last_name(self):
    return self.last_name

def get_login_name(self):
    return self.login_name

def get_password(self, user_input):
    return self.password

def __str__(self):
    return self.person_text

class Account1(models.Model):
    account_number = models.IntegerField(default=12345678)
    bank_balance = models.DecimalField(max_digits=4, decimal_places=2, 
default=12.99)
    interest_rate = models.IntegerField(default=2)
    account_text = models.CharField(max_length=16, default="Current 
Account")
    person = models.ForeignKey(Person, on_delete=models.CASCADE, default="")
        

def get_account_number(self):
    return self.account_number

def get_bank_balance(self):
    return self.bank_balance

def deposit(self, amount):
    self.bank_balance = self.bank_balance + amount
    return

def get_interest_rate(self):
    return self.interest_rate

def withdraw(self, amount):
    self.bank_balance = self.bank_balance - amount
    return

def __str__(self):
    return self.account_text


-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/1b946075-f532-408f-ace7-4e4361ad350b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to