본문 바로가기

개발론

TDD in django / model test

model.py

class Diary(models.Model):
    client = models.ForeignKey(settings.AUTH_USER_MODEL, related_name="+", on_delete=models.CASCADE, null=True)
    title = models.CharField(max_length=100)
    create_date = models.DateTimeField(auto_now_add=True, null=True)
    content = models.CharField(max_length=1000)
    sentiment_score = models.FloatField(verbose_name="텍스트감정분석결과", null=True)

    class Meta:
        verbose_name = '감정일기'
    

 

test.py

class DiaryModelTest(TestCase):
    @classmethod
    def setUpTestData(self):
        self.user = User.objects.create(                                   
            email='super@gmail.com',                                                                   
            password='test',
            username='강낭콩'                                                    
        )

        # Set up non-modified objects used by all test methods
        Diary.objects.create(content='콘텐트', title='제목',client=self.user)
    def test_client_is_user(self):
        diary=Diary.objects.get(id=1)
        client = diary._meta.get_field('client')
        self.assertNotIsInstance(type(client),User)

    def test_sentiment_score_label(self):
        diary=Diary.objects.get(id=1)
        field_label = diary._meta.get_field('sentiment_score').verbose_name
        self.assertEquals(field_label, '텍스트감정분석결과')

    def test_title_max_length(self):
        diary = Diary.objects.get(id=1)
        max_length = diary._meta.get_field('title').max_length
        self.assertEquals(max_length, 100)
    def test_content_max_length(self):
        diary = Diary.objects.get(id=1)
        max_length = diary._meta.get_field('content').max_length
        self.assertEquals(max_length, 1000)

    def test_diary_meta_verbose_name(self):
        diary = Diary.objects.get(id=1)
        self.assertEquals('감정일기', diary._meta.verbose_name)

 

'개발론' 카테고리의 다른 글

도메인 주도 설계 ( Domain Driven Design )  (0) 2021.01.11
개발할때 가장 고민해야하는것  (0) 2021.01.06
GSShop의 개발 변환기  (0) 2020.11.03
JWT 란  (0) 2020.09.21
인증 / 인가의 차이  (0) 2020.09.21