1
1
from django import test
2
2
from django .test .utils import override_settings
3
3
from django .contrib .auth .models import User
4
- from example .models import Cat , Food
4
+ from example .models import Cat , Food , Person
5
5
from selenium import webdriver
6
6
import selenium .webdriver .support .ui as ui
7
7
import time
@@ -32,6 +32,15 @@ def setUp(self):
32
32
Food (name = 'Whiskas' )
33
33
])
34
34
35
+ Person .objects .bulk_create ([
36
+ Person (name = 'Andrew' ),
37
+ Person (name = 'David' ),
38
+ Person (name = 'Mary' ),
39
+ Person (name = 'Matthew' ),
40
+ Person (name = 'Mike' ),
41
+ Person (name = 'Victoria' )
42
+ ])
43
+
35
44
@override_settings (DEBUG = True )
36
45
def test_foo (self ):
37
46
self .selenium .get (self .live_server_url + '/admin/' )
@@ -55,18 +64,38 @@ def select_food(text):
55
64
field = self .selenium .find_element_by_id ('id_favorite_foods' )
56
65
field .send_keys (text )
57
66
58
- wait .until (lambda driver : driver .find_elements_by_class_name ( ' tt-suggestion' ))
67
+ wait .until (lambda driver : driver .find_elements_by_css_selector ( '.field-favorite_foods . tt-suggestion' ))
59
68
60
- suggestions = self .selenium .find_elements_by_class_name ( ' tt-suggestion' )
69
+ suggestions = self .selenium .find_elements_by_css_selector ( '.field-favorite_foods . tt-suggestion' )
61
70
suggestions [0 ].click ()
62
71
63
- wait .until (lambda driver : driver .find_elements_by_class_name ('chip' ))
72
+ wait .until (lambda driver : driver .find_elements_by_css_selector ('.field-favorite_foods .chip' ))
73
+
64
74
# Wait for suggestion animation to finish
65
75
time .sleep (0.5 )
66
76
67
77
select_food ('M' )
68
78
select_food ('W' )
69
79
80
+ # Select person
81
+
82
+ owner_field = self .selenium .find_element_by_id ('id_owner' )
83
+ owner_field .send_keys ('An' )
84
+
85
+ wait .until (lambda driver : driver .find_elements_by_css_selector ('.field-owner .tt-suggestion' ))
86
+
87
+ owner = self .selenium .find_elements_by_css_selector ('.field-owner .tt-suggestion' )
88
+ owner [0 ].click ()
89
+
90
+ wait .until (lambda driver : driver .find_elements_by_css_selector ('.field-owner .chip' ))
91
+
92
+ # Wait for suggestion animation to finish
93
+ time .sleep (0.5 )
94
+
95
+ wait .until (lambda driver : driver .find_elements_by_class_name ('tt-suggestion' ))
96
+
97
+ # Save cat record
98
+
70
99
cat_name_input .submit ()
71
100
72
101
wait .until (lambda driver : driver .find_elements_by_class_name ('success' ))
@@ -77,3 +106,4 @@ def select_food(text):
77
106
self .assertEqual (favorite_foods .count (), 2 )
78
107
self .assertIn (favorite_foods [0 ].name , ('Milk' , 'Meat' ))
79
108
self .assertEqual (favorite_foods [1 ].name , 'Whiskas' )
109
+ self .assertEqual (marusia .owner .name , 'Andrew' )
0 commit comments