From bd984e4ac3c03dbda368604a38a75c4a4c97f078 Mon Sep 17 00:00:00 2001 From: Andy Lulham Date: Wed, 13 Jun 2018 13:23:51 +0100 Subject: [PATCH 01/11] Refactor for clarity --- stats/dashboard.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/stats/dashboard.py b/stats/dashboard.py index 938a910bacd..0b02ba22442 100644 --- a/stats/dashboard.py +++ b/stats/dashboard.py @@ -1228,8 +1228,15 @@ def humanitarian(self): return { 'is_humanitarian': is_humanitarian, 'is_humanitarian_by_attrib': is_humanitarian_by_attrib, - 'contains_humanitarian_scope': 1 if (self._version() in ['2.02', '2.03']) and self.element.xpath('humanitarian-scope/@type') and self.element.xpath('humanitarian-scope/@code') else 0, - 'uses_humanitarian_clusters_vocab': 1 if (self._version() in ['2.02', '2.03']) and self.element.xpath('sector/@vocabulary="10"') else 0 + 'contains_humanitarian_scope': 1 if ( + self._version() in ['2.02', '2.03'] and + self.element.xpath('humanitarian-scope/@type') and + self.element.xpath('humanitarian-scope/@code') + ) else 0, + 'uses_humanitarian_clusters_vocab': 1 if ( + self._version() in ['2.02', '2.03'] and + self.element.xpath('sector/@vocabulary="10"') + ) else 0 } def _transaction_type_code(self, transaction): From d8027157cef521aee01ea7f11492ca207d3cfdd5 Mon Sep 17 00:00:00 2001 From: Andy Lulham Date: Wed, 13 Jun 2018 14:04:12 +0100 Subject: [PATCH 02/11] Update humanitarian tests --- stats/tests/test_humanitarian.py | 42 ++++++++++++++++++++------------ 1 file changed, 26 insertions(+), 16 deletions(-) diff --git a/stats/tests/test_humanitarian.py b/stats/tests/test_humanitarian.py index ceb3936b08c..75098fba61b 100644 --- a/stats/tests/test_humanitarian.py +++ b/stats/tests/test_humanitarian.py @@ -608,77 +608,87 @@ def test_humanitarian_elements_invalid_version(version, hum_attrib_val): @pytest.mark.parametrize('version', ['2.02', '2.03']) -def test_humanitarian_scope_valid(version): +@pytest.mark.parametrize('hum_attrib_val', ['1', 'true']) +def test_humanitarian_scope_valid(version, hum_attrib_val): """ Detect that an activity contains a humanitarian-scope element and required attributes. """ activity_stats = MockActivityStats(version) activity_stats.element = etree.fromstring(''' - + - ''') + '''.format(hum_attrib_val)) + assert activity_stats.humanitarian()['is_humanitarian'] == 1 assert activity_stats.humanitarian()['contains_humanitarian_scope'] == 1 @pytest.mark.parametrize('version', ['2.02', '2.03']) -def test_humanitarian_scope_invalid(version): +@pytest.mark.parametrize('hum_attrib_val', ['1', 'true']) +def test_humanitarian_scope_invalid(version, hum_attrib_val): """ Detect that an activity contains a humanitarian-scope element without required attributes. """ activity_stats = MockActivityStats(version) activity_stats.element = etree.fromstring(''' - + - ''') + '''.format(hum_attrib_val)) + assert activity_stats.humanitarian()['is_humanitarian'] == 1 assert activity_stats.humanitarian()['contains_humanitarian_scope'] == 0 @pytest.mark.parametrize('version', ['2.02', '2.03']) -def test_humanitarian_clusters_valid(version): +@pytest.mark.parametrize('hum_attrib_val', ['1', 'true']) +def test_humanitarian_clusters_valid(version, hum_attrib_val): """ Detect that an activity contains a sector defined by the 'Humanitarian Global Clusters' sector vocabulary. """ activity_stats = MockActivityStats(version) activity_stats.element = etree.fromstring(''' - + - ''') + '''.format(hum_attrib_val)) + assert activity_stats.humanitarian()['is_humanitarian'] == 1 assert activity_stats.humanitarian()['uses_humanitarian_clusters_vocab'] == 1 @pytest.mark.parametrize('version', ['1.01', '1.02', '1.03', '1.04', '1.05', '2.01', 'unknown version']) -def test_humanitarian_clusters_version_1(version): +@pytest.mark.parametrize('hum_attrib_val', ['1', 'true']) +def test_humanitarian_clusters_version_1(version, hum_attrib_val): """ Detect that a pre-2.02 activity containing a sector defined by the 'Humanitarian Global Clusters' sector vocabulary is not detected. """ activity_stats = MockActivityStats(version) activity_stats.element = etree.fromstring(''' - + - ''') + '''.format(hum_attrib_val)) + assert activity_stats.humanitarian()['is_humanitarian'] == 0 assert activity_stats.humanitarian()['uses_humanitarian_clusters_vocab'] == 0 @pytest.mark.parametrize('version', ['1.01', '1.02', '1.03', '1.04', '1.05', '2.01', '2.02', '2.03', 'unknown version']) +@pytest.mark.parametrize('hum_attrib_val', ['1', 'true']) @pytest.mark.parametrize('sector_vocabulary_code', ['', '1', 'internal vocabulary']) -def test_humanitarian_clusters_invalid(version, sector_vocabulary_code): +def test_humanitarian_clusters_invalid(version, hum_attrib_val, + sector_vocabulary_code): """ Detect that an activity does not contain a sector defined by the 'Humanitarian Global Clusters' sector vocabulary. """ activity_stats = MockActivityStats(version) activity_stats.element = etree.fromstring(''' - - + + - '''.format(sector_vocabulary_code)) + '''.format(hum_attrib_val, sector_vocabulary_code)) assert activity_stats.humanitarian()['uses_humanitarian_clusters_vocab'] == 0 From bac1b4b9d5d8c75e6490c9396900128e15ad1325 Mon Sep 17 00:00:00 2001 From: Andy Lulham Date: Wed, 13 Jun 2018 14:04:21 +0100 Subject: [PATCH 03/11] Add two new humanitarian tests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit These ensure a non-humanitarian activity won’t be included in the “clusters” score or the “appeal or emergency details” score. --- stats/tests/test_humanitarian.py | 39 ++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/stats/tests/test_humanitarian.py b/stats/tests/test_humanitarian.py index 75098fba61b..077b58611f0 100644 --- a/stats/tests/test_humanitarian.py +++ b/stats/tests/test_humanitarian.py @@ -641,6 +641,27 @@ def test_humanitarian_scope_invalid(version, hum_attrib_val): assert activity_stats.humanitarian()['contains_humanitarian_scope'] == 0 +@pytest.mark.parametrize('version', ['2.02', '2.03']) +def test_humanitarian_scope_but_not_humanitarian(version): + """ + Tests that humanitarian scope is only valid if the activity + is humanitarian + """ + + activity_stats = MockActivityStats(version) + + activity_stats.element = etree.fromstring(''' + + + + ''') + + assert activity_stats.humanitarian()['is_humanitarian'] == 0 + assert activity_stats.humanitarian()['is_humanitarian_by_attrib'] == 0 + assert activity_stats.humanitarian()['contains_humanitarian_scope'] == 0 + assert activity_stats.humanitarian()['uses_humanitarian_clusters_vocab'] == 0 + + @pytest.mark.parametrize('version', ['2.02', '2.03']) @pytest.mark.parametrize('hum_attrib_val', ['1', 'true']) def test_humanitarian_clusters_valid(version, hum_attrib_val): @@ -658,6 +679,24 @@ def test_humanitarian_clusters_valid(version, hum_attrib_val): assert activity_stats.humanitarian()['uses_humanitarian_clusters_vocab'] == 1 +@pytest.mark.parametrize('version', ['2.02', '2.03']) +def test_humanitarian_clusters_invalid(version): + """ + Detect that even if an activity contains a sector defined by the + 'Humanitarian Global Clusters' sector vocabulary, it must be + humanitarian to count + """ + activity_stats = MockActivityStats(version) + + activity_stats.element = etree.fromstring(''' + + + + ''') + assert activity_stats.humanitarian()['is_humanitarian'] == 0 + assert activity_stats.humanitarian()['uses_humanitarian_clusters_vocab'] == 0 + + @pytest.mark.parametrize('version', ['1.01', '1.02', '1.03', '1.04', '1.05', '2.01', 'unknown version']) @pytest.mark.parametrize('hum_attrib_val', ['1', 'true']) def test_humanitarian_clusters_version_1(version, hum_attrib_val): From aed6244ab247f8be34dad605d056f02ad2f5342e Mon Sep 17 00:00:00 2001 From: Andy Lulham Date: Wed, 13 Jun 2018 14:06:32 +0100 Subject: [PATCH 04/11] Scope and clusters only apply for hum. activities MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `contains_humanitarian_scope` and `uses_humanitarian_clusters_vocab` should only be true for humanitarian activities – it shouldn’t be possible for these to equal 1 if the activity isn’t declared as humanitarian via either the sector code or the humanitarian attribute. --- stats/dashboard.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/stats/dashboard.py b/stats/dashboard.py index 0b02ba22442..e2b7d5d9d76 100644 --- a/stats/dashboard.py +++ b/stats/dashboard.py @@ -1229,11 +1229,13 @@ def humanitarian(self): 'is_humanitarian': is_humanitarian, 'is_humanitarian_by_attrib': is_humanitarian_by_attrib, 'contains_humanitarian_scope': 1 if ( + is_humanitarian and self._version() in ['2.02', '2.03'] and self.element.xpath('humanitarian-scope/@type') and self.element.xpath('humanitarian-scope/@code') ) else 0, 'uses_humanitarian_clusters_vocab': 1 if ( + is_humanitarian and self._version() in ['2.02', '2.03'] and self.element.xpath('sector/@vocabulary="10"') ) else 0 From eaf87671bb4242c7d3eeba2561c3a902b06a34c6 Mon Sep 17 00:00:00 2001 From: dalepotter Date: Tue, 18 Dec 2018 13:19:40 +0000 Subject: [PATCH 05/11] Make test strings explict and add additional tests Adds tests for cases where a non-truthy humanitarian attribute is present. --- stats/tests/test_humanitarian.py | 53 ++++++++++++++++++++++++++++---- 1 file changed, 47 insertions(+), 6 deletions(-) diff --git a/stats/tests/test_humanitarian.py b/stats/tests/test_humanitarian.py index 077b58611f0..ac45d9b70a5 100644 --- a/stats/tests/test_humanitarian.py +++ b/stats/tests/test_humanitarian.py @@ -642,10 +642,10 @@ def test_humanitarian_scope_invalid(version, hum_attrib_val): @pytest.mark.parametrize('version', ['2.02', '2.03']) -def test_humanitarian_scope_but_not_humanitarian(version): +def test_humanitarian_scope_but_not_humanitarian_no_attrib(version): """ - Tests that humanitarian scope is only valid if the activity - is humanitarian + Detect that even if the humanitarian-scope element is present, the humanitarian + attribute must be present and marked as true to count. """ activity_stats = MockActivityStats(version) @@ -662,6 +662,28 @@ def test_humanitarian_scope_but_not_humanitarian(version): assert activity_stats.humanitarian()['uses_humanitarian_clusters_vocab'] == 0 +@pytest.mark.parametrize('version', ['2.02', '2.03']) +@pytest.mark.parametrize('hum_attrib_val_false', ['0', 'false', 'True', 'False', '']) +def test_humanitarian_scope_but_humanitarian_is_false(version, hum_attrib_val_false): + """ + Detect that even if the humanitarian-scope element is present, the humanitarian + attribute must be present and marked as true to count. + """ + + activity_stats = MockActivityStats(version) + + activity_stats.element = etree.fromstring(''' + + + + '''.format(hum_attrib_val_false)) + + assert activity_stats.humanitarian()['is_humanitarian'] == 0 + assert activity_stats.humanitarian()['is_humanitarian_by_attrib'] == 0 + assert activity_stats.humanitarian()['contains_humanitarian_scope'] == 0 + assert activity_stats.humanitarian()['uses_humanitarian_clusters_vocab'] == 0 + + @pytest.mark.parametrize('version', ['2.02', '2.03']) @pytest.mark.parametrize('hum_attrib_val', ['1', 'true']) def test_humanitarian_clusters_valid(version, hum_attrib_val): @@ -680,11 +702,11 @@ def test_humanitarian_clusters_valid(version, hum_attrib_val): @pytest.mark.parametrize('version', ['2.02', '2.03']) -def test_humanitarian_clusters_invalid(version): +def test_humanitarian_clusters_invalid_no_attrib(version): """ Detect that even if an activity contains a sector defined by the - 'Humanitarian Global Clusters' sector vocabulary, it must be - humanitarian to count + 'Humanitarian Global Clusters' sector vocabulary, the humanitarian + attribute must be present and marked as true to count. """ activity_stats = MockActivityStats(version) @@ -697,6 +719,25 @@ def test_humanitarian_clusters_invalid(version): assert activity_stats.humanitarian()['uses_humanitarian_clusters_vocab'] == 0 +@pytest.mark.parametrize('version', ['2.02', '2.03']) +@pytest.mark.parametrize('hum_attrib_val_false', ['0', 'false', 'True', 'False', '']) +def test_humanitarian_clusters_invalid_humanitarian_is_false(version, hum_attrib_val_false): + """ + Detect that even if an activity contains a sector defined by the + 'Humanitarian Global Clusters' sector vocabulary, the humanitarian + attribute must be present and marked as true to count. + """ + activity_stats = MockActivityStats(version) + + activity_stats.element = etree.fromstring(''' + + + + '''.format(hum_attrib_val_false)) + assert activity_stats.humanitarian()['is_humanitarian'] == 0 + assert activity_stats.humanitarian()['uses_humanitarian_clusters_vocab'] == 0 + + @pytest.mark.parametrize('version', ['1.01', '1.02', '1.03', '1.04', '1.05', '2.01', 'unknown version']) @pytest.mark.parametrize('hum_attrib_val', ['1', 'true']) def test_humanitarian_clusters_version_1(version, hum_attrib_val): From 9df0798f6bdbad57f4a19804409a651f155d892b Mon Sep 17 00:00:00 2001 From: dalepotter Date: Tue, 18 Dec 2018 13:23:31 +0000 Subject: [PATCH 06/11] Only count an activity as 'humanitarian by humanitarian-scope' if attributes are non-empty Fixes the issue described in https://github.com/IATI/IATI-Dashboard/issues/488#issuecomment-446545092 --- stats/dashboard.py | 4 ++-- stats/tests/test_humanitarian.py | 24 ++++++++++++++++++++---- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/stats/dashboard.py b/stats/dashboard.py index e2b7d5d9d76..2efb0861e1a 100644 --- a/stats/dashboard.py +++ b/stats/dashboard.py @@ -1231,8 +1231,8 @@ def humanitarian(self): 'contains_humanitarian_scope': 1 if ( is_humanitarian and self._version() in ['2.02', '2.03'] and - self.element.xpath('humanitarian-scope/@type') and - self.element.xpath('humanitarian-scope/@code') + all_true_and_not_empty(self.element.xpath('humanitarian-scope/@type')) and + all_true_and_not_empty(self.element.xpath('humanitarian-scope/@code')) ) else 0, 'uses_humanitarian_clusters_vocab': 1 if ( is_humanitarian and diff --git a/stats/tests/test_humanitarian.py b/stats/tests/test_humanitarian.py index ac45d9b70a5..66661f66ac0 100644 --- a/stats/tests/test_humanitarian.py +++ b/stats/tests/test_humanitarian.py @@ -576,7 +576,7 @@ def test_humanitarian_elements_valid_version(version, hum_attrib_val): activity_stats.element = etree.fromstring(''' - + '''.format(hum_attrib_val)) @@ -617,7 +617,7 @@ def test_humanitarian_scope_valid(version, hum_attrib_val): activity_stats.element = etree.fromstring(''' - + '''.format(hum_attrib_val)) assert activity_stats.humanitarian()['is_humanitarian'] == 1 @@ -641,6 +641,23 @@ def test_humanitarian_scope_invalid(version, hum_attrib_val): assert activity_stats.humanitarian()['contains_humanitarian_scope'] == 0 +@pytest.mark.parametrize('version', ['2.02', '2.03']) +@pytest.mark.parametrize('hum_attrib_val', ['1', 'true']) +def test_humanitarian_scope_invalid_empty_values(version, hum_attrib_val): + """ + Detect that even if the humanitarian-scope element is present (with required attributes), there must be non-empty data within the @type and @code attributes for it to count as humanitarian. + """ + activity_stats = MockActivityStats(version) + + activity_stats.element = etree.fromstring(''' + + + + '''.format(hum_attrib_val)) + assert activity_stats.humanitarian()['is_humanitarian'] == 1 + assert activity_stats.humanitarian()['contains_humanitarian_scope'] == 0 + + @pytest.mark.parametrize('version', ['2.02', '2.03']) def test_humanitarian_scope_but_not_humanitarian_no_attrib(version): """ @@ -652,7 +669,7 @@ def test_humanitarian_scope_but_not_humanitarian_no_attrib(version): activity_stats.element = etree.fromstring(''' - + ''') @@ -771,4 +788,3 @@ def test_humanitarian_clusters_invalid(version, hum_attrib_val, '''.format(hum_attrib_val, sector_vocabulary_code)) assert activity_stats.humanitarian()['uses_humanitarian_clusters_vocab'] == 0 - From 2c9be9e01de2382db1c04f8feb69c61cc966637a Mon Sep 17 00:00:00 2001 From: dalepotter Date: Tue, 18 Dec 2018 15:30:12 +0000 Subject: [PATCH 07/11] Remove duplicate test --- stats/tests/test_humanitarian.py | 19 +------------------ 1 file changed, 1 insertion(+), 18 deletions(-) diff --git a/stats/tests/test_humanitarian.py b/stats/tests/test_humanitarian.py index 66661f66ac0..94295031987 100644 --- a/stats/tests/test_humanitarian.py +++ b/stats/tests/test_humanitarian.py @@ -569,7 +569,7 @@ def test_humanitarian_attrib_false_sector_false(version, hum_attrib_val_true, hu @pytest.mark.parametrize('hum_attrib_val', ['1', 'true']) def test_humanitarian_elements_valid_version(version, hum_attrib_val): """ - Tests that humanitarian elements are detected at supported versions. + Detect that an activity contains a humanitarian-scope element (with required non-empty attributes). """ activity_stats = MockActivityStats(version) @@ -607,23 +607,6 @@ def test_humanitarian_elements_invalid_version(version, hum_attrib_val): assert activity_stats.humanitarian()['uses_humanitarian_clusters_vocab'] == 0 -@pytest.mark.parametrize('version', ['2.02', '2.03']) -@pytest.mark.parametrize('hum_attrib_val', ['1', 'true']) -def test_humanitarian_scope_valid(version, hum_attrib_val): - """ - Detect that an activity contains a humanitarian-scope element and required attributes. - """ - activity_stats = MockActivityStats(version) - - activity_stats.element = etree.fromstring(''' - - - - '''.format(hum_attrib_val)) - assert activity_stats.humanitarian()['is_humanitarian'] == 1 - assert activity_stats.humanitarian()['contains_humanitarian_scope'] == 1 - - @pytest.mark.parametrize('version', ['2.02', '2.03']) @pytest.mark.parametrize('hum_attrib_val', ['1', 'true']) def test_humanitarian_scope_invalid(version, hum_attrib_val): From eef7e4bf46484c884eb367389cc8a1a8548f2c84 Mon Sep 17 00:00:00 2001 From: dalepotter Date: Tue, 18 Dec 2018 15:34:39 +0000 Subject: [PATCH 08/11] Add non-empty humanitarian-scope attributes to appropriate failing tests --- stats/tests/test_humanitarian.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stats/tests/test_humanitarian.py b/stats/tests/test_humanitarian.py index 94295031987..f86ce6228c4 100644 --- a/stats/tests/test_humanitarian.py +++ b/stats/tests/test_humanitarian.py @@ -597,7 +597,7 @@ def test_humanitarian_elements_invalid_version(version, hum_attrib_val): activity_stats.element = etree.fromstring(''' - + '''.format(version, hum_attrib_val)) @@ -674,7 +674,7 @@ def test_humanitarian_scope_but_humanitarian_is_false(version, hum_attrib_val_fa activity_stats.element = etree.fromstring(''' - + '''.format(hum_attrib_val_false)) From a70abfe9c70db57106aa1bd6f7df3fc71470e0fd Mon Sep 17 00:00:00 2001 From: dalepotter Date: Tue, 18 Dec 2018 15:46:58 +0000 Subject: [PATCH 09/11] Improve test docstrings and add all versions to some failing tests --- stats/tests/test_humanitarian.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/stats/tests/test_humanitarian.py b/stats/tests/test_humanitarian.py index f86ce6228c4..ff9266f87b8 100644 --- a/stats/tests/test_humanitarian.py +++ b/stats/tests/test_humanitarian.py @@ -569,7 +569,7 @@ def test_humanitarian_attrib_false_sector_false(version, hum_attrib_val_true, hu @pytest.mark.parametrize('hum_attrib_val', ['1', 'true']) def test_humanitarian_elements_valid_version(version, hum_attrib_val): """ - Detect that an activity contains a humanitarian-scope element (with required non-empty attributes). + Detect that an activity containing a humanitarian-scope element (with required non-empty attributes) count as humanitarian. """ activity_stats = MockActivityStats(version) @@ -611,7 +611,7 @@ def test_humanitarian_elements_invalid_version(version, hum_attrib_val): @pytest.mark.parametrize('hum_attrib_val', ['1', 'true']) def test_humanitarian_scope_invalid(version, hum_attrib_val): """ - Detect that an activity contains a humanitarian-scope element without required attributes. + Detect that even if an activity (at an expected version) contains a humanitarian-scope element, it must include the required attributes to count as humanitarian. """ activity_stats = MockActivityStats(version) @@ -628,7 +628,7 @@ def test_humanitarian_scope_invalid(version, hum_attrib_val): @pytest.mark.parametrize('hum_attrib_val', ['1', 'true']) def test_humanitarian_scope_invalid_empty_values(version, hum_attrib_val): """ - Detect that even if the humanitarian-scope element is present (with required attributes), there must be non-empty data within the @type and @code attributes for it to count as humanitarian. + Detect that even if the humanitarian-scope (at an expected version) element is present (with required attributes), there must be non-empty data within the @type and @code attributes for it to count as humanitarian. """ activity_stats = MockActivityStats(version) @@ -641,10 +641,10 @@ def test_humanitarian_scope_invalid_empty_values(version, hum_attrib_val): assert activity_stats.humanitarian()['contains_humanitarian_scope'] == 0 -@pytest.mark.parametrize('version', ['2.02', '2.03']) +@pytest.mark.parametrize('version', ['1.01', '1.02', '1.03', '1.04', '1.05', '2.01', '2.02', '2.03', 'unknown version']) def test_humanitarian_scope_but_not_humanitarian_no_attrib(version): """ - Detect that even if the humanitarian-scope element is present, the humanitarian + Detect that even if an activity (of any version) contains the humanitarian-scope element, the humanitarian attribute must be present and marked as true to count. """ @@ -662,11 +662,11 @@ def test_humanitarian_scope_but_not_humanitarian_no_attrib(version): assert activity_stats.humanitarian()['uses_humanitarian_clusters_vocab'] == 0 -@pytest.mark.parametrize('version', ['2.02', '2.03']) +@pytest.mark.parametrize('version', ['1.01', '1.02', '1.03', '1.04', '1.05', '2.01', '2.02', '2.03', 'unknown version']) @pytest.mark.parametrize('hum_attrib_val_false', ['0', 'false', 'True', 'False', '']) def test_humanitarian_scope_but_humanitarian_is_false(version, hum_attrib_val_false): """ - Detect that even if the humanitarian-scope element is present, the humanitarian + Detect that even if an activity (at any version) contains a humanitarian-scope element is present, the humanitarian attribute must be present and marked as true to count. """ From bbeb01b6029b0bfafbc01807c69a145fc2056b2a Mon Sep 17 00:00:00 2001 From: dalepotter Date: Tue, 18 Dec 2018 16:27:53 +0000 Subject: [PATCH 10/11] Remove mid-setence line breaks in docstrings Makes docstrings consistent with those initially in the file. --- stats/tests/test_humanitarian.py | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/stats/tests/test_humanitarian.py b/stats/tests/test_humanitarian.py index ff9266f87b8..7433689811b 100644 --- a/stats/tests/test_humanitarian.py +++ b/stats/tests/test_humanitarian.py @@ -644,8 +644,7 @@ def test_humanitarian_scope_invalid_empty_values(version, hum_attrib_val): @pytest.mark.parametrize('version', ['1.01', '1.02', '1.03', '1.04', '1.05', '2.01', '2.02', '2.03', 'unknown version']) def test_humanitarian_scope_but_not_humanitarian_no_attrib(version): """ - Detect that even if an activity (of any version) contains the humanitarian-scope element, the humanitarian - attribute must be present and marked as true to count. + Detect that even if an activity (of any version) contains the humanitarian-scope element, the humanitarian attribute must be present and marked as true to count. """ activity_stats = MockActivityStats(version) @@ -666,8 +665,7 @@ def test_humanitarian_scope_but_not_humanitarian_no_attrib(version): @pytest.mark.parametrize('hum_attrib_val_false', ['0', 'false', 'True', 'False', '']) def test_humanitarian_scope_but_humanitarian_is_false(version, hum_attrib_val_false): """ - Detect that even if an activity (at any version) contains a humanitarian-scope element is present, the humanitarian - attribute must be present and marked as true to count. + Detect that even if an activity (at any version) contains a humanitarian-scope element is present, the humanitarian attribute must be present and marked as true to count. """ activity_stats = MockActivityStats(version) @@ -704,9 +702,7 @@ def test_humanitarian_clusters_valid(version, hum_attrib_val): @pytest.mark.parametrize('version', ['2.02', '2.03']) def test_humanitarian_clusters_invalid_no_attrib(version): """ - Detect that even if an activity contains a sector defined by the - 'Humanitarian Global Clusters' sector vocabulary, the humanitarian - attribute must be present and marked as true to count. + Detect that even if an activity contains a sector defined by the 'Humanitarian Global Clusters' sector vocabulary, the humanitarian attribute must be present and marked as true to count. """ activity_stats = MockActivityStats(version) @@ -723,9 +719,7 @@ def test_humanitarian_clusters_invalid_no_attrib(version): @pytest.mark.parametrize('hum_attrib_val_false', ['0', 'false', 'True', 'False', '']) def test_humanitarian_clusters_invalid_humanitarian_is_false(version, hum_attrib_val_false): """ - Detect that even if an activity contains a sector defined by the - 'Humanitarian Global Clusters' sector vocabulary, the humanitarian - attribute must be present and marked as true to count. + Detect that even if an activity contains a sector defined by the 'Humanitarian Global Clusters' sector vocabulary, the humanitarian attribute must be present and marked as true to count. """ activity_stats = MockActivityStats(version) From 071968ba6f8db27744a5bb014093346c8d54d4a5 Mon Sep 17 00:00:00 2001 From: Andy Lulham Date: Wed, 19 Dec 2018 11:23:16 +0000 Subject: [PATCH 11/11] Typos in docstrings --- stats/tests/test_humanitarian.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stats/tests/test_humanitarian.py b/stats/tests/test_humanitarian.py index 7433689811b..fbb0c33b26e 100644 --- a/stats/tests/test_humanitarian.py +++ b/stats/tests/test_humanitarian.py @@ -569,7 +569,7 @@ def test_humanitarian_attrib_false_sector_false(version, hum_attrib_val_true, hu @pytest.mark.parametrize('hum_attrib_val', ['1', 'true']) def test_humanitarian_elements_valid_version(version, hum_attrib_val): """ - Detect that an activity containing a humanitarian-scope element (with required non-empty attributes) count as humanitarian. + Detect that an activity containing a humanitarian-scope element (with required non-empty attributes) counts as humanitarian. """ activity_stats = MockActivityStats(version) @@ -665,7 +665,7 @@ def test_humanitarian_scope_but_not_humanitarian_no_attrib(version): @pytest.mark.parametrize('hum_attrib_val_false', ['0', 'false', 'True', 'False', '']) def test_humanitarian_scope_but_humanitarian_is_false(version, hum_attrib_val_false): """ - Detect that even if an activity (at any version) contains a humanitarian-scope element is present, the humanitarian attribute must be present and marked as true to count. + Detect that even if an activity (at any version) contains a humanitarian-scope element, the humanitarian attribute must be present and marked as true to count. """ activity_stats = MockActivityStats(version)