mardi 9 août 2016

Django Function Test log in log out

when I

create function test about 'sign up + log in' and 'log in + log out'

I use from django.test import LiveServerTestCase

so functional test will use testing database

when I command

python manage.py test func_test

it show me

Creating test database for alias 'default'...
[...]
Destroying test database for alias 'default'...

so my funcional_test code is

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from django.test import LiveServerTestCase


class NewVisitorTest(LiveServerTestCase):

    def setUp(self):
        self.browser = webdriver.Firefox()

    def tearDown(self):
        self.browser.quit()

    def test_can_sign_up_and_log_in_out_this_website(self):


        self.browser.get(self.live_server_url)

        join_us = self.browser.find_element_by_id('join_us')
        join_us.send_keys(Keys.ENTER)

        username_box = self.browser.find_element_by_name('username')
        password_box = self.browser.find_element_by_name('password')

        username_box.send_keys('MyTestID')
        password_box.send_keys('123')

        self.browser.find_element_by_id('button').click()

        [...]

        self.browser.find_element_by_id('log_out').send_keys(Keys.ENTER)

        self.assertIn('회원가입', self.browser.find_element_by_tag_name('body').text)

        ## first IPython
        from IPython import embed; embed()


        #self.fail('test passed')


    def test_user_can_login_website(self):

         self.browser.get(self.live_server_url)

         self.assertIn('남서울 도서공유', self.browser.title)

        # I want log in
        log_in = self.browser.find_element_by_id('log_in')
        log_in.send_keys(Keys.ENTER)
        self.assertIn('로그인', self.browser.title)

        # 로그인 페이지에서 아이디와 비빌번호를 입력하고
        # 확인 버튼을 누른다
        username_box = self.browser.find_element_by_name('username')
        password_box = self.browser.find_element_by_name('password')

        username_box.send_keys('MyTestID')
        password_box.send_keys('123')

        self.browser.find_element_by_id('button').click()

        ## second IPython
        from IPython import embed; embed()
        self.fail('이게 되나')

when i running func_test

first test_can_sign_up_and_log_in_out_this_website is runnging
second test_user_can_login_website is running

when first IPython open

In [1]: from users.models.user import User

In [2]: User.objects.first()
Out[2]: <User: MyTestID>

In [3]: exit

but when second IPython open I command

In [1]: from users.models.user import User

In [2]: User.objects.first()

In [3]: exit

I think when Test running, Test Database is open... and when finish test, Test Database is destroy...

why when second test method running, created user removed??

Aucun commentaire:

Enregistrer un commentaire