Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(59)

Side by Side Diff: mojo/tools/testing/mojom_fetcher/mojom_fetcher_tests.py

Issue 1709333002: Remove mojom_fetcher. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 #!/usr/bin/env python
2 # Copyright 2015 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file.
5
6 import io
7 import os
8 import sys
9 import unittest
10
11 sys.path.insert(0, os.path.join(os.path.dirname(os.path.abspath(__file__)),
12 "..", "..", "..", "public", "tools",
13 "mojom_fetcher"))
14 sys.path.insert(0, os.path.join(os.path.dirname(os.path.abspath(__file__)),
15 "..", "..", "..", "public", "tools",
16 "mojom_fetcher", "pylib"))
17 sys.path.insert(0, os.path.join(os.path.dirname(os.path.abspath(__file__)),
18 "..", "..", "..", "public", "tools",
19 "bindings", "pylib"))
20
21 from mojom_fetcher import UrlRewriter, UrlRewriterException, MojomFetcher
22
23 # Fake repository for testing
24 from fakes import FakeRepository
25
26
27 class TestUrlRewriter(unittest.TestCase):
28 def test_no_transitive(self):
29 rules = {"foo.com": "bar.com/foo", "bar.com": "baz.com"}
30 try:
31 UrlRewriter(rules)
32 self.fail()
33 except UrlRewriterException:
34 # This is expected
35 pass
36
37 def test_rewrite(self):
38 rules = {"foo.com": "bar.com/foo", "baz.com": "bar.com/baz"}
39 rewriter = UrlRewriter(rules)
40 self.assertEquals("bar.com/foo/foo_file",
41 rewriter.rewrite("foo.com/foo_file"))
42 self.assertEquals("bar.com/baz/foo_file",
43 rewriter.rewrite("baz.com/foo_file"))
44 self.assertEquals("example.com/file",
45 rewriter.rewrite("example.com/file"))
46
47
48 class FakeRequest(object):
49 def __init__(self, content, ok):
50 self.content = content
51 self.ok = ok
52
53
54 class FakeMojomFetcher(MojomFetcher):
55 data = """module test;
56 interface Fiz {};"""
57
58 def __init__(self, repository, rewriter):
59 self.count = 1
60 self.opened_files = {}
61 self.downloaded_urls = []
62 MojomFetcher.__init__(self, repository, rewriter)
63
64 def _requests_get(self, url):
65 self.downloaded_urls.append(url)
66 return FakeRequest(self.data, True)
67
68 def _os_makedirs(self, _):
69 return
70
71 def _open(self, f, _):
72 fake_file = io.BytesIO()
73 self.opened_files[f] = fake_file
74 if "services.fiz.org/foo/bar.mojom" in f:
75 self._repository.all_files_available = True
76 return fake_file
77
78
79 class TestMojomFetcher(unittest.TestCase):
80 def setUp(self):
81 self.rules = {"foo.com": "bar.com/foo", "baz.com": "bar.com/baz"}
82 self.rewriter = UrlRewriter(self.rules)
83 self.repository = FakeRepository("/path/to/repo", "third_party/external")
84 self.fetcher = FakeMojomFetcher(self.repository, self.rewriter)
85
86 def test_get(self):
87 self.fetcher.get("foo.com/bar.mojom")
88 self.assertEquals(["https://bar.com/foo/bar.mojom",
89 "https://services.fiz.org/foo/bar.mojom"],
90 self.fetcher.downloaded_urls)
91
92 def test_update(self):
93 self.fetcher.update()
94 self.assertEquals(["https://services.domokit.org/foo/fiz.mojom",
95 "https://services.fiz.org/foo/bar.mojom"],
96 self.fetcher.downloaded_urls)
97
98 def test_discover(self):
99 self.fetcher.update()
100 self.assertEquals(["https://services.domokit.org/foo/fiz.mojom",
101 "https://services.fiz.org/foo/bar.mojom"],
102 self.fetcher.downloaded_urls)
103
104 if __name__ == '__main__':
105 loader = unittest.defaultTestLoader
106 runner = unittest.TextTestRunner()
107 directory = os.path.dirname(os.path.abspath(__file__))
108 suite = loader.discover(directory, '*_tests.py')
109 runner.run(suite)
OLDNEW
« no previous file with comments | « mojo/tools/testing/mojom_fetcher/mojom_directory_tests.py ('k') | mojo/tools/testing/mojom_fetcher/mojom_file_tests.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698