Browse Source

Vimeo's unit test

Cqoicebordel 10 years ago
parent
commit
04fa31b7f4
3 changed files with 86 additions and 2 deletions
  1. 1
    2
      searx/engines/vimeo.py
  2. 84
    0
      searx/tests/engines/test_vimeo.py
  3. 1
    0
      searx/tests/test_engines.py

+ 1
- 2
searx/engines/vimeo.py View File

@@ -59,8 +59,7 @@ def response(resp):
59 59
         url = base_url + videoid
60 60
         title = p.unescape(extract_text(result.xpath(title_xpath)))
61 61
         thumbnail = extract_text(result.xpath(content_xpath)[0])
62
-        publishedDate = parser.parse(extract_text(
63
-            result.xpath(publishedDate_xpath)[0]))
62
+        publishedDate = parser.parse(extract_text(result.xpath(publishedDate_xpath)[0]))
64 63
         embedded = embedded_url.format(videoid=videoid)
65 64
 
66 65
         # append result

+ 84
- 0
searx/tests/engines/test_vimeo.py View File

@@ -0,0 +1,84 @@
1
+from collections import defaultdict
2
+import mock
3
+from searx.engines import vimeo
4
+from searx.testing import SearxTestCase
5
+
6
+
7
+class TestVimeoEngine(SearxTestCase):
8
+
9
+    def test_request(self):
10
+        query = 'test_query'
11
+        dicto = defaultdict(dict)
12
+        dicto['pageno'] = 0
13
+        params = vimeo.request(query, dicto)
14
+        self.assertTrue('url' in params)
15
+        self.assertTrue(query in params['url'])
16
+        self.assertTrue('vimeo.com' in params['url'])
17
+
18
+    def test_response(self):
19
+        self.assertRaises(AttributeError, vimeo.response, None)
20
+        self.assertRaises(AttributeError, vimeo.response, [])
21
+        self.assertRaises(AttributeError, vimeo.response, '')
22
+        self.assertRaises(AttributeError, vimeo.response, '[]')
23
+
24
+        response = mock.Mock(text='<html></html>')
25
+        self.assertEqual(vimeo.response(response), [])
26
+
27
+        html = """
28
+        <div id="browse_content" class="" data-search-id="696d5f8366914ec4ffec33cf7652de384976d4f4">
29
+            <ol class="js-browse_list clearfix browse browse_videos browse_videos_thumbnails kane"
30
+                data-stream="c2VhcmNoOjo6ZGVzYzp7InF1ZXJ5IjoidGVzdCJ9">
31
+                <li id="clip_100785455" data-start-page="/search/page:1/sort:relevant/" data-position="1">
32
+                    <a href="/videoid" title="Futurama 3d (test shot)">
33
+                        <img src="http://image.url.webp"
34
+                            srcset="http://i.vimeocdn.com/video/482375085_590x332.webp 2x" alt=""
35
+                            class="thumbnail thumbnail_lg_wide">
36
+                        <div class="data">
37
+                            <p class="title">
38
+                                This is the title
39
+                            </p>
40
+                            <p class="meta">
41
+                                <time datetime="2014-07-15T04:16:27-04:00"
42
+                                    title="mardi 15 juillet 2014 04:16">Il y a 6 mois</time>
43
+                            </p>
44
+                        </div>
45
+                    </a>
46
+                </li>
47
+            </ol>
48
+        </div>
49
+        """
50
+        response = mock.Mock(text=html)
51
+        results = vimeo.response(response)
52
+        self.assertEqual(type(results), list)
53
+        self.assertEqual(len(results), 1)
54
+        self.assertEqual(results[0]['title'], 'This is the title')
55
+        self.assertEqual(results[0]['url'], 'http://vimeo.com/videoid')
56
+        self.assertEqual(results[0]['content'], '')
57
+        self.assertEqual(results[0]['thumbnail'], 'http://image.url.webp')
58
+        self.assertIn('/videoid', results[0]['embedded'])
59
+
60
+        html = """
61
+        <ol class="js-browse_list clearfix browse browse_videos browse_videos_thumbnails kane"
62
+            data-stream="c2VhcmNoOjo6ZGVzYzp7InF1ZXJ5IjoidGVzdCJ9">
63
+            <li id="clip_100785455" data-start-page="/search/page:1/sort:relevant/" data-position="1">
64
+                <a href="/videoid" title="Futurama 3d (test shot)">
65
+                    <img src="http://image.url.webp"
66
+                        srcset="http://i.vimeocdn.com/video/482375085_590x332.webp 2x" alt=""
67
+                        class="thumbnail thumbnail_lg_wide">
68
+                    <div class="data">
69
+                        <p class="title">
70
+                            This is the title
71
+                        </p>
72
+                        <p class="meta">
73
+                            <time datetime="2014-07-15T04:16:27-04:00"
74
+                                title="mardi 15 juillet 2014 04:16">Il y a 6 mois</time>
75
+                        </p>
76
+                    </div>
77
+                </a>
78
+            </li>
79
+        </ol>
80
+        """
81
+        response = mock.Mock(text=html)
82
+        results = vimeo.response(response)
83
+        self.assertEqual(type(results), list)
84
+        self.assertEqual(len(results), 0)

+ 1
- 0
searx/tests/test_engines.py View File

@@ -17,4 +17,5 @@ from searx.tests.engines.test_searchcode_code import *  # noqa
17 17
 from searx.tests.engines.test_searchcode_doc import *  # noqa
18 18
 from searx.tests.engines.test_soundcloud import *  # noqa
19 19
 from searx.tests.engines.test_stackoverflow import *  # noqa
20
+from searx.tests.engines.test_vimeo import *  # noqa
20 21
 from searx.tests.engines.test_youtube import *  # noqa