| OLD | NEW | 
|   1 # This file is part of the Adblock Plus web scripts, |   1 # This file is part of the Adblock Plus web scripts, | 
|   2 # Copyright (C) 2006-2016 Eyeo GmbH |   2 # Copyright (C) 2006-2016 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 """Tests for create nightlies script.""" |  16 import os | 
 |  17 from subprocess import CalledProcessError | 
 |  18  | 
|  17 import pytest |  19 import pytest | 
|  18  |  20  | 
|  19 from sitescripts.extensions.bin import createNightlies |  21 from sitescripts.extensions.bin import createNightlies | 
|  20 from sitescripts.utils import get_config |  22 from sitescripts.utils import get_config | 
|  21  |  23  | 
|  22  |  24  | 
|  23 @pytest.fixture() |  25 @pytest.fixture(scope='session') | 
|  24 def config(hg_dir): |  26 def nightlydir(hg_dir): | 
 |  27     return hg_dir.join('adblockplusnightly') | 
 |  28  | 
 |  29  | 
 |  30 @pytest.fixture(scope='session') | 
 |  31 def config(hg_dir, nightlydir): | 
 |  32     """Set and return config obj for NightlyBuild""" | 
|  25     config = get_config() |  33     config = get_config() | 
|  26     config.type = 'safari' |  34     config.type = 'safari' | 
|  27     config.repository = str(hg_dir.join('adblockplusnightly')) |  | 
|  28     config.revision = 'safari' |  35     config.revision = 'safari' | 
 |  36     config.repositoryName = 'adblockplusnightly' | 
 |  37     config.repository = nightlydir.strpath | 
|  29     return config |  38     return config | 
|  30  |  39  | 
|  31  |  40  | 
|  32 @pytest.fixture() |  41 @pytest.fixture(scope='session') | 
|  33 def nightlybuild(config): |  42 def nightlybuild(config): | 
|  34     return createNightlies.NightlyBuild(config) |  43     return createNightlies.NightlyBuild(config) | 
|  35  |  44  | 
|  36  |  45  | 
|  37 def test_nightly_object_bookmark(nightlybuild): |  46 def test_nightly_object_bookmark(nightlybuild): | 
|  38     assert nightlybuild.config.revision == 'safari' |  47     assert nightlybuild.config.revision == 'safari' | 
 |  48  | 
 |  49  | 
 |  50 def test_current_revision(nightlybuild): | 
 |  51     # The hash is the commit that the safari bookmark points to. | 
 |  52     # (see adblockplusnightly.bookmark in test/data/bookmarks) | 
 |  53     assert nightlybuild.revision == '1291590ddd0f' | 
 |  54  | 
 |  55  | 
 |  56 def test_copy_repository(nightlybuild, nightlydir): | 
 |  57     nightlybuild.copyRepository() | 
 |  58     assert os.listdir(nightlybuild.tempdir) == ['.hg', 'README.txt'] | 
 |  59  | 
 |  60  | 
 |  61 def test_get_changes(nightlybuild, nightlydir): | 
 |  62     # The bookmark 'safari' contains only 2 revisions | 
 |  63     # default contains 51 so here we ensure that erroneous changes | 
 |  64     # are not returned | 
 |  65     for change in nightlybuild.getChanges(): | 
 |  66         assert change['revision'] < '2' | 
 |  67  | 
 |  68     nightlybuild.config.revision = 'default' | 
 |  69     for change in nightlybuild.getChanges(): | 
 |  70         assert change['revision'] > '1' | 
 |  71  | 
 |  72  | 
 |  73 def test_missing_bookmark(config): | 
 |  74     config.revision = 'foo' | 
 |  75     config.type = 'type' | 
 |  76     try: | 
 |  77         createNightlies.NightlyBuild(config) | 
 |  78     except CalledProcessError as e: | 
 |  79         assert e.returncode == 255 | 
| OLD | NEW |