, Firefox .
, Selenium, Firefox, . , Firefox. , . , . Firefox .
:
from selenium.selenium import selenium
import unittest, time, re
import BRConfig
class BRTestCase(unittest.TestCase):
selenium = None
@classmethod
def getSelenium(cls):
if (None == cls.selenium):
cls.selenium = selenium("localhost", 4444, "*chrome", BRConfig.WEBROOT)
cls.selenium.start()
return cls.selenium
@classmethod
def restartSelenium(cls):
cls.selenium.stop()
cls.selenium.start()
@classmethod
def stopSelenium(cls):
cls.selenium.stop()
def setUp(self):
self.verificationErrors = []
self.selenium = BRTestCase.getSelenium()
def tearDown(self):
self.assertEqual([], self.verificationErrors)
:
import unittest, sys
import BRConfig, BRTestCase
import exception_on_signup
import timezone_error_on_checkout
import ...
def suite():
return unittest.TestSuite((\
unittest.makeSuite(exception_on_signup.ExceptionOnSignup),
unittest.makeSuite(timezone_error_on_checkout.TimezoneErrorOnCheckout),
...
))
if __name__ == "__main__":
result = unittest.TextTestRunner(verbosity=2).run(suite())
BRTestCase.BRTestCase.stopSelenium()
sys.exit(not result.wasSuccessful())
, , Firefox . , , Github, .
, :
from selenium.selenium import selenium
import unittest, time, re
import BRConfig
from BRTestCase import BRTestCase
class Signin(BRTestCase):
def test_signin(self):
sel = self.selenium
sel.open("/signout")
sel.open("/")
sel.open("signin")
sel.type("email", "test@test.com")
sel.type("password", "test")
sel.click("//div[@id='signInControl']/form/input[@type='submit']")
sel.wait_for_page_to_load("30000")
self.assertEqual(BRConfig.WEBROOT, sel.get_location())
if __name__ == "__main__":
unittest.main()