mirror of
				https://github.com/searxng/searxng
				synced 2024-01-01 19:24:07 +01:00 
			
		
		
		
	Merge pull request #523 from a01200356/master
[fix] duckduckgo's xpaths changed
This commit is contained in:
		
						commit
						24ea39d046
					
				
					 3 changed files with 29 additions and 49 deletions
				
			
		|  | @ -10,7 +10,7 @@ python: | |||
| before_install: | ||||
|   - "export DISPLAY=:99.0" | ||||
|   - "sh -e /etc/init.d/xvfb start" | ||||
|   - npm install -g less grunt-cli | ||||
|   - npm install less grunt-cli | ||||
|   - ( cd searx/static/themes/oscar;npm install; cd - ) | ||||
| install: | ||||
|   - ./manage.sh update_dev_packages | ||||
|  |  | |||
|  | @ -28,10 +28,10 @@ language_support = True | |||
| url = 'https://duckduckgo.com/html?{query}&s={offset}' | ||||
| 
 | ||||
| # specific xpath variables | ||||
| result_xpath = '//div[@class="results_links results_links_deep web-result"]'  # noqa | ||||
| url_xpath = './/a[@class="large"]/@href' | ||||
| title_xpath = './/a[@class="large"]' | ||||
| content_xpath = './/div[@class="snippet"]' | ||||
| result_xpath = '//div[@class="result results_links results_links_deep web-result "]'  # noqa | ||||
| url_xpath = './/a[@class="result__a"]/@href' | ||||
| title_xpath = './/a[@class="result__a"]' | ||||
| content_xpath = './/a[@class="result__snippet"]' | ||||
| 
 | ||||
| 
 | ||||
| # do search-request | ||||
|  |  | |||
|  | @ -32,20 +32,32 @@ class TestDuckduckgoEngine(SearxTestCase): | |||
|         self.assertEqual(duckduckgo.response(response), []) | ||||
| 
 | ||||
|         html = u""" | ||||
|         <div class="results_links results_links_deep web-result"> | ||||
|             <div class="icon_fav" style="display: block;"> | ||||
|                 <a rel="nofollow" href="https://www.test.com/"> | ||||
|                     <img width="16" height="16" alt="" | ||||
|                     src="/i/www.test.com.ico" style="visibility: visible;" name="i15" /> | ||||
|                 </a> | ||||
|         <div class="result results_links results_links_deep web-result result--no-result"> | ||||
|             <div class="links_main links_deep result__body"> | ||||
|                 <h2 class="result__title"> | ||||
|                 </h2> | ||||
|                 <div class="no-results">No results</div> | ||||
|                 <div class="result__extras"> | ||||
|                 </div> | ||||
|             <div class="links_main links_deep"> <!-- This is the visible part --> | ||||
|                 <a rel="nofollow" class="large" href="http://this.should.be.the.link/ű"> | ||||
|             </div> | ||||
|         </div> | ||||
|         """ | ||||
|         response = mock.Mock(text=html) | ||||
|         results = duckduckgo.response(response) | ||||
|         self.assertEqual(duckduckgo.response(response), []) | ||||
| 
 | ||||
|         html = u""" | ||||
|         <div class="result results_links results_links_deep web-result "> | ||||
|             <div class="links_main links_deep result__body"> | ||||
|                 <h2 class="result__title"> | ||||
|                     <a rel="nofollow" class="result__a" href="http://this.should.be.the.link/ű"> | ||||
|                         This <b>is</b> <b>the</b> title | ||||
|                     </a> | ||||
|                 <div class="snippet"><b>This</b> should be the content.</div> | ||||
|                 <div class="url"> | ||||
|                     http://this.should.be.the.link/ | ||||
|                 </h2> | ||||
|                 <a class="result__snippet" href="http://this.should.be.the.link/ű"> | ||||
|                     <b>This</b> should be the content. | ||||
|                 </a> | ||||
|                 <div class="result__extras"> | ||||
|                 </div> | ||||
|             </div> | ||||
|         </div> | ||||
|  | @ -57,35 +69,3 @@ class TestDuckduckgoEngine(SearxTestCase): | |||
|         self.assertEqual(results[0]['title'], 'This is the title') | ||||
|         self.assertEqual(results[0]['url'], u'http://this.should.be.the.link/ű') | ||||
|         self.assertEqual(results[0]['content'], 'This should be the content.') | ||||
| 
 | ||||
|         html = """ | ||||
|         <div class="results_links results_links_deep web-result"> | ||||
|             <div class="icon_fav" style="display: block;"> | ||||
|             </div> | ||||
|             <div class="links_main links_deep"> <!-- This is the visible part --> | ||||
|                 <div class="snippet"><b>This</b> should be the content.</div> | ||||
|                 <div class="url"> | ||||
|                     http://this.should.be.the.link/ | ||||
|                 </div> | ||||
|             </div> | ||||
|         </div> | ||||
|         <div class="results_links results_links_deep web-result"> | ||||
|             <div class="icon_fav" style="display: block;"> | ||||
|                 <img width="16" height="16" alt="" | ||||
|                 src="/i/www.test.com.ico" style="visibility: visible;" name="i15" /> | ||||
|             </div> | ||||
|             <div class="links_main links_deep"> <!-- This is the visible part --> | ||||
|                 <a rel="nofollow" class="large" href=""> | ||||
|                     This <b>is</b> <b>the</b> title | ||||
|                 </a> | ||||
|                 <div class="snippet"><b>This</b> should be the content.</div> | ||||
|                 <div class="url"> | ||||
|                     http://this.should.be.the.link/ | ||||
|                 </div> | ||||
|             </div> | ||||
|         </div> | ||||
|         """ | ||||
|         response = mock.Mock(text=html) | ||||
|         results = duckduckgo.response(response) | ||||
|         self.assertEqual(type(results), list) | ||||
|         self.assertEqual(len(results), 0) | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Adam Tauber
						Adam Tauber