root / ui / tests.py @ 838c404d
History | View | Annotate | Download (2.3 kB)
1 | ce124269 | Dimitris Moraitis | from django.test import TestCase |
---|---|---|---|
2 | c0124a81 | Dimitris Moraitis | from selenium import selenium |
3 | c0124a81 | Dimitris Moraitis | from multiprocessing import Process |
4 | c0124a81 | Dimitris Moraitis | from time import sleep |
5 | ce124269 | Dimitris Moraitis | |
6 | e646ebe5 | Dimitris Moraitis | |
7 | c0124a81 | Dimitris Moraitis | class FunctionalCase(TestCase): |
8 | c0124a81 | Dimitris Moraitis | """
|
9 | c0124a81 | Dimitris Moraitis | Functional tests for synnefo.ui using Selenium
|
10 | c0124a81 | Dimitris Moraitis | """
|
11 | ce124269 | Dimitris Moraitis | |
12 | c0124a81 | Dimitris Moraitis | def setUp(self): |
13 | c0124a81 | Dimitris Moraitis | """Make the selenium connection"""
|
14 | c0124a81 | Dimitris Moraitis | TestCase.setUp(self)
|
15 | c0124a81 | Dimitris Moraitis | self.verificationErrors = []
|
16 | c0124a81 | Dimitris Moraitis | self.selenium = selenium("localhost", 4444, "*firefox", |
17 | c0124a81 | Dimitris Moraitis | "http://localhost:8000/")
|
18 | c0124a81 | Dimitris Moraitis | self.selenium.start()
|
19 | ce124269 | Dimitris Moraitis | |
20 | c0124a81 | Dimitris Moraitis | def tearDown(self): |
21 | c0124a81 | Dimitris Moraitis | """Kill processes"""
|
22 | c0124a81 | Dimitris Moraitis | TestCase.tearDown(self)
|
23 | c0124a81 | Dimitris Moraitis | self.selenium.stop()
|
24 | c0124a81 | Dimitris Moraitis | self.assertEqual([], self.verificationErrors) |
25 | e646ebe5 | Dimitris Moraitis | |
26 | c0124a81 | Dimitris Moraitis | def test_wizard(self): |
27 | c0124a81 | Dimitris Moraitis | sel = self.selenium
|
28 | c0124a81 | Dimitris Moraitis | sel.open("/")
|
29 | c0124a81 | Dimitris Moraitis | sel.wait_for_page_to_load("10000")
|
30 | c0124a81 | Dimitris Moraitis | self.failUnless(sel.is_text_present("machines")) |
31 | c0124a81 | Dimitris Moraitis | sleep(2)
|
32 | c0124a81 | Dimitris Moraitis | sel.click("create")
|
33 | c0124a81 | Dimitris Moraitis | sel.click("small")
|
34 | c0124a81 | Dimitris Moraitis | sel.click("//div[@id='wizard']/div/div[1]/button[2]")
|
35 | 0ad5737e | Dimitris Moraitis | sleep(2)
|
36 | c0124a81 | Dimitris Moraitis | sel.click("medium")
|
37 | 0ad5737e | Dimitris Moraitis | sleep(2)
|
38 | e646ebe5 | Dimitris Moraitis | try:
|
39 | e646ebe5 | Dimitris Moraitis | self.assertEqual("2048", sel.get_value("ram-indicator")) |
40 | e646ebe5 | Dimitris Moraitis | except AssertionError, e: |
41 | e646ebe5 | Dimitris Moraitis | self.verificationErrors.append(str(e)) |
42 | e646ebe5 | Dimitris Moraitis | try:
|
43 | e646ebe5 | Dimitris Moraitis | self.assertEqual("2", sel.get_value("cpu-indicator")) |
44 | e646ebe5 | Dimitris Moraitis | except AssertionError, e: |
45 | e646ebe5 | Dimitris Moraitis | self.verificationErrors.append(str(e)) |
46 | e646ebe5 | Dimitris Moraitis | try:
|
47 | e646ebe5 | Dimitris Moraitis | self.assertEqual("40", sel.get_value("storage-indicator")) |
48 | e646ebe5 | Dimitris Moraitis | except AssertionError, e: |
49 | e646ebe5 | Dimitris Moraitis | self.verificationErrors.append(str(e)) |
50 | 0ad5737e | Dimitris Moraitis | sleep(2)
|
51 | c0124a81 | Dimitris Moraitis | sel.click("//div[@id='wizard']/div/div[2]/button[2]")
|
52 | 0ad5737e | Dimitris Moraitis | sleep(2)
|
53 | c0124a81 | Dimitris Moraitis | self.assertEqual("2", sel.get_text("machine_cpu-label")) |
54 | c0124a81 | Dimitris Moraitis | self.assertEqual("2048", sel.get_text("machine_ram-label")) |
55 | c0124a81 | Dimitris Moraitis | self.assertEqual("40", sel.get_text("machine_storage-label")) |
56 | c0124a81 | Dimitris Moraitis | sel.click("start")
|
57 | 0ad5737e | Dimitris Moraitis | sleep(2)
|
58 | e646ebe5 | Dimitris Moraitis | try:
|
59 | e646ebe5 | Dimitris Moraitis | self.failUnless(sel.is_text_present("Success")) |
60 | e646ebe5 | Dimitris Moraitis | except AssertionError, e: |
61 | e646ebe5 | Dimitris Moraitis | self.verificationErrors.append(str(e)) |
62 | ce124269 | Dimitris Moraitis | |
63 | e646ebe5 | Dimitris Moraitis | #self.assertEqual("Success!",
|
64 | e646ebe5 | Dimitris Moraitis | # sel.get_text("//div[@id='error-success']/h3"))
|
65 | 0ad5737e | Dimitris Moraitis | #sel.click("//div[@id='error-success']/a")
|
66 | 0ad5737e | Dimitris Moraitis | #try: self.failUnless(sel.is_text_present("My Debian Unstable server"))
|
67 | 0ad5737e | Dimitris Moraitis | #except AssertionError, e: self.verificationErrors.append(str(e)) |