LEFT | RIGHT |
1 # This file is part of Adblock Plus <https://adblockplus.org/>, | 1 # This file is part of Adblock Plus <https://adblockplus.org/>, |
2 # Copyright (C) 2006-present eyeo GmbH | 2 # Copyright (C) 2006-present eyeo GmbH |
3 # | 3 # |
4 # Adblock Plus is free software: you can redistribute it and/or modify | 4 # Adblock Plus is free software: you can redistribute it and/or modify |
5 # it under the terms of the GNU General Public License version 3 as | 5 # it under the terms of the GNU General Public License version 3 as |
6 # published by the Free Software Foundation. | 6 # published by the Free Software Foundation. |
7 # | 7 # |
8 # Adblock Plus is distributed in the hope that it will be useful, | 8 # Adblock Plus is distributed in the hope that it will be useful, |
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of | 9 # but WITHOUT ANY WARRANTY; without even the implied warranty of |
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
11 # GNU General Public License for more details. | 11 # GNU General Public License for more details. |
12 # | 12 # |
13 # You should have received a copy of the GNU General Public License | 13 # You should have received a copy of the GNU General Public License |
14 # along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>. | 14 # along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>. |
15 | 15 |
16 import pytest | 16 import pytest |
17 | 17 |
18 from abp.filters.sources import FSSource, NotFound, WebSource | 18 from abp.filters.sources import FSSource, NotFound |
19 | 19 |
20 | 20 |
21 @pytest.fixture | 21 @pytest.fixture |
22 def fssource_dir(tmpdir): | 22 def fssource_dir(tmpdir): |
23 tmpdir.mkdir('root') | 23 tmpdir.mkdir('root') |
24 not_in_source = tmpdir.join('not-in-source.txt') | 24 not_in_source = tmpdir.join('not-in-source.txt') |
25 not_in_source.write('! secret') | 25 not_in_source.write('! secret') |
26 root = tmpdir.join('root') | 26 root = tmpdir.join('root') |
27 root.mkdir('foo') | 27 root.mkdir('foo') |
28 foobar = root.join('foo', 'bar.txt') | 28 foobar = root.join('foo', 'bar.txt') |
29 foobar.write('! foo/bar.txt\n! end') | 29 foobar.write('! foo/bar.txt\n! end') |
30 return str(root) | 30 return str(root) |
31 | 31 |
32 | 32 |
33 @pytest.fixture | 33 @pytest.fixture |
34 def fssource(fssource_dir): | 34 def fssource(fssource_dir): |
35 return FSSource(fssource_dir) | 35 return FSSource(fssource_dir) |
36 | 36 |
37 | 37 |
38 @pytest.fixture | |
39 def websource(fssource_dir): | |
40 return WebSource(fssource_dir) | |
41 | |
42 | |
43 def test_read_file(fssource): | 38 def test_read_file(fssource): |
44 assert list(fssource.get('foo/bar.txt')) == ['! foo/bar.txt', '! end'] | 39 assert list(fssource.get('foo/bar.txt')) == ['! foo/bar.txt', '! end'] |
45 | 40 |
46 | 41 |
47 def test_escape_source(fssource): | 42 def test_escape_source(fssource): |
48 with pytest.raises(ValueError): | 43 with pytest.raises(ValueError): |
49 list(fssource.get('../not-in-source.txt')) | 44 list(fssource.get('../not-in-source.txt')) |
50 | 45 |
51 | 46 |
52 def test_read_missing_file(fssource): | 47 def test_read_missing_file(fssource): |
53 with pytest.raises(NotFound): | 48 with pytest.raises(NotFound): |
54 list(fssource.get('foo/baz.txt')) | 49 list(fssource.get('foo/baz.txt')) |
55 | 50 |
56 | 51 |
57 def test_fssource_get_err(fssource): | 52 def test_fssource_get_err(fssource): |
58 with pytest.raises(IOError): | 53 with pytest.raises(IOError): |
59 list(fssource.get('')) | 54 list(fssource.get('')) |
60 | |
61 | |
62 def test_websource_get_err(websource): | |
63 with pytest.raises(ValueError): | |
64 list(websource.get('')) | |
LEFT | RIGHT |