!1 Package init

Merge pull request !1 from lkx690/master
This commit is contained in:
openeuler-ci-bot 2020-02-27 11:15:32 +08:00 committed by Gitee
commit 349f7bfef1
3 changed files with 204 additions and 0 deletions

View File

@ -0,0 +1,134 @@
From 37a4d0dbeb9a92b959edfb9b1aceba4eaacf9f78 Mon Sep 17 00:00:00 2001
From: Alex Panov <thealexpanov@gmail.com>
Date: Sun, 15 May 2016 23:36:18 -0400
Subject: [PATCH] Add boolean matchers
---
README.rst | 5 ++++
src/hamcrest/library/__init__.py | 3 ++
src/hamcrest/library/bool/__init__.py | 1 +
src/hamcrest/library/bool/bool_comparison.py | 22 ++++++++++++++
tests/hamcrest_unit_test/bool/__init__.py | 0
.../bool/bool_comparison_test.py | 34 ++++++++++++++++++++++
6 files changed, 65 insertions(+)
create mode 100644 src/hamcrest/library/bool/__init__.py
create mode 100644 src/hamcrest/library/bool/bool_comparison.py
create mode 100644 tests/hamcrest_unit_test/bool/__init__.py
create mode 100644 tests/hamcrest_unit_test/bool/bool_comparison_test.py
diff --git a/README.rst b/README.rst
index 8ef46bb..d2200f8 100644
--- a/README.rst
+++ b/README.rst
@@ -148,6 +148,11 @@ PyHamcrest comes with a library of useful matchers:
* ``greater_than``, ``greater_than_or_equal_to``, ``less_than``,
``less_than_or_equal_to`` - match numeric ordering
+* Boolean
+
+ * ``is_true`` - verify the value is True
+ * ``is_false`` - verify the value is False
+
* Text
* ``contains_string`` - match part of a string
diff --git a/src/hamcrest/library/__init__.py b/src/hamcrest/library/__init__.py
index a5a7963..55dfcda 100644
--- a/src/hamcrest/library/__init__.py
+++ b/src/hamcrest/library/__init__.py
@@ -7,6 +7,7 @@ from hamcrest.library.integration import *
from hamcrest.library.number import *
from hamcrest.library.object import *
from hamcrest.library.text import *
+from hamcrest.library.bool import *
__author__ = "Jon Reid"
__copyright__ = "Copyright 2011 hamcrest.org"
@@ -41,4 +42,6 @@ __all__ = [
'ends_with',
'starts_with',
'string_contains_in_order',
+ 'is_true',
+ 'is_false'
]
diff --git a/src/hamcrest/library/bool/__init__.py b/src/hamcrest/library/bool/__init__.py
new file mode 100644
index 0000000..7cf13a3
--- /dev/null
+++ b/src/hamcrest/library/bool/__init__.py
@@ -0,0 +1 @@
+from .bool_comparison import is_true, is_false
diff --git a/src/hamcrest/library/bool/bool_comparison.py b/src/hamcrest/library/bool/bool_comparison.py
new file mode 100644
index 0000000..af7e1b6
--- /dev/null
+++ b/src/hamcrest/library/bool/bool_comparison.py
@@ -0,0 +1,22 @@
+from hamcrest.core.base_matcher import BaseMatcher
+
+
+class IsABool(BaseMatcher):
+ def __init__(self, boolean_value):
+ self.boolean_value = boolean_value
+
+ def describe_to(self, description):
+ description.append_text(str(self.boolean_value))
+
+ def _matches(self, item):
+ if not isinstance(item, bool):
+ return False
+ return item == self.boolean_value
+
+
+def is_true():
+ return IsABool(True)
+
+
+def is_false():
+ return IsABool(False)
diff --git a/tests/hamcrest_unit_test/bool/__init__.py b/tests/hamcrest_unit_test/bool/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/tests/hamcrest_unit_test/bool/bool_comparison_test.py b/tests/hamcrest_unit_test/bool/bool_comparison_test.py
new file mode 100644
index 0000000..e865365
--- /dev/null
+++ b/tests/hamcrest_unit_test/bool/bool_comparison_test.py
@@ -0,0 +1,34 @@
+from hamcrest import assert_that, equal_to
+from hamcrest.core.string_description import StringDescription
+from hamcrest.library.bool import is_false, is_true
+from hamcrest_unit_test.matcher_test import MatcherTest
+
+
+class BoolComparisonTest(MatcherTest):
+ def test_true_is_true(self):
+ self.assert_matches('Is True', is_true(), True)
+
+ def test_false_is_not_true(self):
+ self.assert_does_not_match('False', is_true(), False)
+
+ def test_false_is_false(self):
+ self.assert_matches('False', is_false(), False)
+
+ def test_true_is_not_false(self):
+ self.assert_does_not_match('True', is_false(), True)
+
+ def test_number_is_not_true(self):
+ self.assert_does_not_match('True', is_true(), 1)
+
+ def test_number_is_not_false(self):
+ self.assert_does_not_match('False', is_false(), 1)
+
+ def test_is_true_description(self):
+ description = StringDescription()
+ is_true().describe_to(description)
+ assert_that(str(description), equal_to('True'))
+
+ def test_is_false_description(self):
+ description = StringDescription()
+ is_false().describe_to(description)
+ assert_that(str(description), equal_to('False'))
--
2.9.3

Binary file not shown.

70
python-hamcrest.spec Normal file
View File

@ -0,0 +1,70 @@
Name: python-hamcrest
Version: 1.9.0
Release: 8
Summary: Hamcrest matchers for Python
License: BSD
URL: https://github.com/hamcrest/PyHamcrest
Source0: https://github.com/hamcrest/PyHamcrest/archive/V1.9.0/%{name}-1.9.0.tar.gz
Patch0001: 0001-Add-boolean-matchers.patch
BuildArch: noarch
%description
PyHamcrest is a framework for writing matcher objects, allowing you to
declaratively define "match" rules. There are a number of situations
where matchers are invaluable, such as UI validation, or data filtering,
but it is in the area of writing flexible tests that matchers are most
commonly used.
%package -n python2-hamcrest
Summary: Hamcrest matchers for Python
%{?python_provide:%python_provide python2-hamcrest}
BuildRequires: python2-devel python2-setuptools python2-pytest python2-mock python2-six
Requires: python2-six
%description -n python2-hamcrest
PyHamcrest is a framework for writing matcher objects, allowing you to
declaratively define "match" rules. There are a number of situations
where matchers are invaluable, such as UI validation, or data filtering,
but it is in the area of writing flexible tests that matchers are most
commonly used.
Python 2 version.
%package -n python3-hamcrest
Summary: Hamcrest matchers for Python
%{?python_provide:%python_provide python3-hamcrest}
BuildRequires: python3-devel python3-setuptools python3-pytest python3-mock python3-six
Requires: python3-six
%description -n python3-hamcrest
PyHamcrest is a framework for writing matcher objects, allowing you to
declaratively define "match" rules. There are a number of situations
where matchers are invaluable, such as UI validation, or data filtering,
but it is in the area of writing flexible tests that matchers are most
commonly used.
Python 3 version.
%prep
%autosetup -n PyHamcrest-%{version} -p1
%build
%py2_build
%py3_build
%install
%py2_install
%py3_install
%check
mv pytest.ini pytest.ini~
PYTHONPATH=%{buildroot}%{python2_sitelib} py.test-%{python2_version} -v
PYTHONPATH=%{buildroot}%{python3_sitelib} py.test-%{python3_version} -v
%files -n python2-hamcrest
%{python2_sitelib}/*
%files -n python3-hamcrest
%{python3_sitelib}/*
%changelog
* Fri Feb 21 2020 likexin <likexin4@huawei.com> - 1.9.0-8
- package init