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