@@ -9,129 +9,121 @@ class ElementFinderTests(unittest.TestCase):
99
1010 def setUp (self ):
1111 self .ctx = mock ()
12- self .ctx .browser = self . browser = mock ()
12+ self .ctx .element_finder = mock ()
1313 self .finder = TableElementFinder (self .ctx )
14+ self .args = {'first_only' : False , 'required' : False }
1415
1516 def tearDown (self ):
1617 unstub ()
1718
1819 def test_find_with_implicit_css_locator (self ):
19- when (self .browser ). find_elements_by_css_selector (
20- "table#test1" ).thenReturn ([])
20+ when (self .ctx . element_finder ). find ( "css=table#test1" ,
21+ ** self . args ).thenReturn ([])
2122 self .finder .find ("test1" )
22- verify (self .browser ). find_elements_by_css_selector ( " table#test1" )
23+ verify (self .ctx . element_finder ). find ( "css= table#test1", ** self . args )
2324
2425 def test_find_with_css_selector (self ):
2526 elements = self ._make_mock_elements ('table' , 'table' , 'table' )
26- when (self .browser ).find_elements_by_css_selector (
27- "table#test1" ).thenReturn (elements )
28- self .assertEqual (
29- self .finder .find ("css=table#test1" ),
30- elements [0 ])
31- verify (self .browser ).find_elements_by_css_selector ("table#test1" )
27+ when (self .ctx .element_finder ).find ("css=table#test1" ,
28+ ** self .args ).thenReturn (elements )
29+ self .assertEqual (self .finder .find ("css=table#test1" ),
30+ elements [0 ])
31+ verify (self .ctx .element_finder ).find ("css=table#test1" , ** self .args )
3232
3333 def test_find_with_xpath_selector (self ):
3434 elements = self ._make_mock_elements ('table' , 'table' , 'table' )
35- when (self .browser ).find_elements_by_xpath (
36- "//table[@id='test1']" ).thenReturn (elements )
37- self .assertEqual (
38- self .finder .find ("xpath=//table[@id='test1']" ),
39- elements [0 ])
40- verify (self .browser ).find_elements_by_xpath (
41- "//table[@id='test1']" )
35+ when (self .ctx .element_finder ).find ("xpath=//table[@id='test1']" ,
36+ ** self .args ).thenReturn (elements )
37+ self .assertEqual (self .finder .find ("xpath=//table[@id='test1']" ),
38+ elements [0 ])
39+ verify (self .ctx .element_finder ).find ("xpath=//table[@id='test1']" ,
40+ ** self .args )
4241
4342 def test_find_with_content_constraint (self ):
4443 elements = self ._make_mock_elements ('td' , 'td' , 'td' )
4544 elements [1 ].text = 'hi'
46- when (self .browser ). find_elements_by_css_selector (
47- "table#test1" ).thenReturn (elements )
48- self .assertEqual (
49- self . finder . find_by_content ( "test1" , 'hi' ),
50- elements [ 1 ])
51- verify ( self .browser ). find_elements_by_css_selector ( "table#test1" )
45+ when (self .ctx . element_finder ). find ( "css=table#test1" ,
46+ ** self . args ).thenReturn (elements )
47+ self .assertEqual (self . finder . find_by_content ( "test1" , 'hi' ),
48+ elements [ 1 ])
49+ verify ( self . ctx . element_finder ). find ( "css=table#test1" ,
50+ ** self .args )
5251
5352 def test_find_with_null_content_constraint (self ):
5453 elements = self ._make_mock_elements ('td' , 'td' , 'td' )
5554 elements [1 ].text = 'hi'
56- when (self .browser ).find_elements_by_css_selector (
57- "table#test1" ).thenReturn (elements )
58- self .assertEqual (
59- self .finder .find_by_content ("test1" , None ),
60- elements [0 ])
61- verify (self .browser ).find_elements_by_css_selector ("table#test1" )
55+ when (self .ctx .element_finder ).find ("css=table#test1" ,
56+ ** self .args ).thenReturn (elements )
57+ self .assertEqual (self .finder .find_by_content ("test1" , None ),
58+ elements [0 ])
59+ verify (self .ctx .element_finder ).find ("css=table#test1" , ** self .args )
6260
6361 def test_find_by_content_with_css_locator (self ):
64- when (self .browser ). find_elements_by_css_selector (
65- "table#test1" ).thenReturn ([])
62+ when (self .ctx . element_finder ). find ( "css=table#test1" ,
63+ ** self . args ).thenReturn ([])
6664 self .finder .find_by_content ("css=table#test1" , 'hi' )
67- verify (self .browser ). find_elements_by_css_selector ( " table#test1" )
65+ verify (self .ctx . element_finder ). find ( "css= table#test1", ** self . args )
6866
6967 def test_find_by_content_with_xpath_locator (self ):
70- when (self .browser ). find_elements_by_xpath (
71- "//table[@id='test1']//*" ).thenReturn ([])
68+ when (self .ctx . element_finder ). find ( "xpath=//table[@id='test1']//*" ,
69+ ** self . args ).thenReturn ([])
7270 self .finder .find_by_content ("xpath=//table[@id='test1']" , 'hi' )
73- verify (self .browser ).find_elements_by_xpath ("//table[@id='test1']//*" )
71+ verify (self .ctx .element_finder ).find ("xpath=//table[@id='test1']//*" ,
72+ ** self .args )
7473
7574 def test_find_by_header_with_css_locator (self ):
76- when (self .browser ). find_elements_by_css_selector (
77- "table#test1 th" ).thenReturn ([])
75+ when (self .ctx . element_finder ). find ( "css=table#test1 th" ,
76+ ** self . args ).thenReturn ([])
7877 self .finder .find_by_header ("css=table#test1" , 'hi' )
79- verify (self .browser ). find_elements_by_css_selector ( " table#test1 th" )
78+ verify (self .ctx . element_finder ). find ( "css= table#test1 th", ** self . args )
8079
8180 def test_find_by_header_with_xpath_locator (self ):
82- when (self .browser ). find_elements_by_xpath (
83- "//table[@id='test1']//th" ).thenReturn ([])
81+ when (self .ctx . element_finder ). find ( "xpath=//table[@id='test1']//th" ,
82+ ** self . args ).thenReturn ([])
8483 self .finder .find_by_header ("xpath=//table[@id='test1']" , 'hi' )
85- verify (self .browser ). find_elements_by_xpath (
86- "//table[@id='test1']//th" )
84+ verify (self .ctx . element_finder ). find ( "xpath=//table[@id='test1']//th" ,
85+ ** self . args )
8786
8887 def test_find_by_footer_with_css_locator (self ):
89- when (self .browser ). find_elements_by_css_selector (
90- "table#test1 tfoot td" ).thenReturn ([])
88+ when (self .ctx . element_finder ). find ( "css=table#test1 tfoot td" ,
89+ ** self . args ).thenReturn ([])
9190 self .finder .find_by_footer ("css=table#test1" , 'hi' )
92- verify (self .browser ). find_elements_by_css_selector (
93- "table#test1 tfoot td" )
91+ verify (self .ctx . element_finder ). find ( "css=table#test1 tfoot td" ,
92+ ** self . args )
9493
9594 def test_find_by_footer_with_xpath_locator (self ):
96- when ( self . browser ). find_elements_by_xpath (
97- "//table[@id='test1']//tfoot//td" ).thenReturn ([])
95+ xpath = "xpath=//table[@id='test1']//tfoot//td"
96+ when ( self . ctx . element_finder ). find ( xpath , ** self . args ).thenReturn ([])
9897 self .finder .find_by_footer ("xpath=//table[@id='test1']" , 'hi' )
99- verify (self .browser ).find_elements_by_xpath ("//table[@id='test1']"
100- "//tfoot//td" )
98+ verify (self .ctx .element_finder ).find (xpath , ** self .args )
10199
102100 def test_find_by_row_with_css_locator (self ):
103- when (self .browser ). find_elements_by_css_selector (
104- "table#test1 tr:nth-child(2)" ).thenReturn ([])
101+ when (self .ctx . element_finder ). find ( "css=table#test1 tr:nth-child(2)" ,
102+ ** self . args ).thenReturn ([])
105103 self .finder .find_by_row ("css=table#test1" , 2 , 'hi' )
106- verify (self .browser ). find_elements_by_css_selector ( " table#test1 "
107- "tr:nth-child(2)" )
104+ verify (self .ctx . element_finder ). find ( "css= table#test1 tr:nth-child(2)" ,
105+ ** self . args )
108106
109107 def test_find_by_row_with_xpath_locator (self ):
110- when ( self . browser ). find_elements_by_xpath (
111- "//table[@id='test1']//tr[2]//*" ).thenReturn ([])
108+ xpath = "xpath=//table[@id='test1']//tr[2]//*"
109+ when ( self . ctx . element_finder ). find ( xpath , ** self . args ).thenReturn ([])
112110 self .finder .find_by_row ("xpath=//table[@id='test1']" , 2 , 'hi' )
113- verify (self .browser ).find_elements_by_xpath ("//table[@id='test1']"
114- "//tr[2]//*" )
111+ verify (self .ctx .element_finder ).find (xpath , ** self .args )
115112
116113 def test_find_by_col_with_css_locator (self ):
117- when ( self . browser ). find_elements_by_css_selector (
118- " table#test1 tr td :nth-child(2)"). thenReturn ([])
119- when (self .browser ). find_elements_by_css_selector (
120- "table#test1 tr th:nth-child(2)" ).thenReturn ([])
114+ css1 = "css=table#test1 tr td:nth-child(2)"
115+ css2 = "css= table#test1 tr th :nth-child(2)"
116+ when (self .ctx . element_finder ). find ( css1 , ** self . args ). thenReturn ([])
117+ when ( self . ctx . element_finder ). find ( css2 , ** self . args ).thenReturn ([])
121118 self .finder .find_by_col ("css=table#test1" , 2 , 'hi' )
122- verify (self .browser ).find_elements_by_css_selector (
123- "table#test1 tr td:nth-child(2)" )
124- verify (self .browser ).find_elements_by_css_selector (
125- "table#test1 tr th:nth-child(2)" )
119+ verify (self .ctx .element_finder ).find (css1 , ** self .args )
120+ verify (self .ctx .element_finder ).find (css2 , ** self .args )
126121
127122 def test_find_by_col_with_xpath_locator (self ):
128- when (self .browser ).find_elements_by_xpath ("//table[@id='test1']//tr//"
129- "*[self::td or self"
130- "::th][2]" ).thenReturn ([])
123+ xpath = "xpath=//table[@id='test1']//tr//*[self::td or self::th][2]"
124+ when (self .ctx .element_finder ).find (xpath , ** self .args ).thenReturn ([])
131125 self .finder .find_by_col ("xpath=//table[@id='test1']" , 2 , 'hi' )
132- verify (self .browser ).find_elements_by_xpath ("//table[@id='test1']"
133- "//tr//*[self::td or self"
134- "::th][2]" )
126+ verify (self .ctx .element_finder ).find (xpath , ** self .args )
135127
136128 def _make_mock_elements (self , * tags ):
137129 elements = []
0 commit comments