[arch-commits] Commit in python-daemon/trunk (4 files)

Evangelos Foutras foutrelis at gemini.archlinux.org
Wed Dec 8 02:28:47 UTC 2021


    Date: Wednesday, December 8, 2021 @ 02:28:46
  Author: foutrelis
Revision: 1065584

Fix tests for Python 3.10

Added:
  python-daemon/trunk/python310.patch
  python-daemon/trunk/testtools-2.5.0.patch
Modified:
  python-daemon/trunk/PKGBUILD
Deleted:
  python-daemon/trunk/python-daemon-2.3.0-fix-py3.10.patch

--------------------------------------+
 PKGBUILD                             |   15 -
 python-daemon-2.3.0-fix-py3.10.patch |  285 ---------------------------------
 python310.patch                      |   31 +++
 testtools-2.5.0.patch                |   22 ++
 4 files changed, 60 insertions(+), 293 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2021-12-08 02:20:23 UTC (rev 1065583)
+++ PKGBUILD	2021-12-08 02:28:46 UTC (rev 1065584)
@@ -13,13 +13,16 @@
 makedepends=('python-setuptools' 'python-docutils' 'python-lockfile' 'python-pip')
 checkdepends=('python-mock' 'python-testscenarios' 'python-wheel')
 source=(https://files.pythonhosted.org/packages/source/p/$pkgname/$pkgname-$pkgver.tar.gz
-        python-daemon-2.3.0-fix-py3.10.patch)
+        testtools-2.5.0.patch
+        python310.patch)
 sha256sums=('bda993f1623b1197699716d68d983bb580043cf2b8a66a01274d9b8297b0aeaf'
-            '3e6091f4eea62ec738c424867766e2755155b807fb58622e07e565ae7b97c1b6')
+            '7f8dfbe9e01edcb19ebede5580d448a995b721ee3b56ca1d353f58c36416c980'
+            '1777e34936ed5d45001e9994f563fdf8c9e2045b667223f1eebf896031627ddc')
 
-build() {
+prepare() {
   cd "${srcdir}"/python-daemon-$pkgver
-  patch -Np1 -i ${srcdir}/python-daemon-2.3.0-fix-py3.10.patch
+  patch -Np1 -i ../testtools-2.5.0.patch
+  patch -Np1 -i ../python310.patch
 }
 
 build() {
@@ -29,10 +32,6 @@
 
 check() {
   cd python-daemon-$pkgver
-  # fix for >=testtools-2.5.0
-  sed -e 's/testtools.helpers.safe_hasattr/hasattr/' \
-          -i test/test_metadata.py || die
-
   python setup.py test
 }
 

Deleted: python-daemon-2.3.0-fix-py3.10.patch
===================================================================
--- python-daemon-2.3.0-fix-py3.10.patch	2021-12-08 02:20:23 UTC (rev 1065583)
+++ python-daemon-2.3.0-fix-py3.10.patch	2021-12-08 02:28:46 UTC (rev 1065584)
@@ -1,285 +0,0 @@
-<!DOCTYPE html>
-<html lang='en'>
-<head>
-<title>python-daemon-2.3.0-fix-py3.10.patch « files « python-daemon « dev-python - repo/gentoo.git - Official Gentoo ebuild repository</title>
-<meta name='generator' content='cgit v1.2.3-18-g5258'/>
-<meta name='robots' content='index,follow'/>
-<link rel='stylesheet' type='text/css' href='/cgit.css'/>
-<link rel='shortcut icon' href='//www.gentoo.org/favicon.ico'/>
-<link rel='alternate' title='Atom feed' href='https://gitweb.gentoo.org/repo/gentoo.git/atom/dev-python/python-daemon/files/python-daemon-2.3.0-fix-py3.10.patch?h=master' type='application/atom+xml'/>
-<link rel='vcs-git' href='https://anongit.gentoo.org/git/repo/gentoo.git' title='repo/gentoo.git Git repository'/>
-<link rel='vcs-git' href='git+ssh://git@git.gentoo.org/repo/gentoo.git' title='repo/gentoo.git Git repository'/>
-<meta name="viewport" content="width=device-width, initial-scale=1.0">
-<meta name="theme-color" content="#54487a">
-<meta name="description" content="Browse the Gentoo Git repositories">
-<link href="https://assets.gentoo.org/tyrian/v2/tyrian.min.css" rel="stylesheet" media="screen">
-</head>
-<body>
-<header>
-  <div class="site-title">
-    <div class="container">
-      <div class="row justify-content-between">
-        <div class="logo">
-          <a href="/" title="Back to the homepage" class="site-logo">
-            <img src="https://assets.gentoo.org/tyrian/v2/site-logo.png" alt="Gentoo" srcset="https://assets.gentoo.org/tyrian/v2/site-logo.svg">
-          </a>
-          <span class="site-label">GitWeb</span>
-        </div>
-        <div class="site-title-buttons">
-          <div class="btn-group btn-group-sm">
-            <a href="https://get.gentoo.org/" role="button" class="btn get-gentoo"><span class="fa fa-fw fa-download"></span>
-              <strong>Get Gentoo!</strong></a>
-            <div class="btn-group btn-group-sm">
-              <a class="btn gentoo-org-sites dropdown-toggle" data-toggle="dropdown" data-target="#" href="#">
-                <span class="fa fa-fw fa-map-o"></span> <span class="d-none d-sm-inline">gentoo.org sites</span>
-                <span class="caret"></span>
-              </a>
-              <div class="dropdown-menu dropdown-menu-right">
-                <a class="dropdown-item" href="https://www.gentoo.org/" title="Main Gentoo website"><span class="fa fa-home fa-fw"></span>
-                  gentoo.org</a>
-                <a class="dropdown-item" href="https://wiki.gentoo.org/" title="Find and contribute documentation"><span class="fa fa-file-text-o fa-fw"></span>
-                  Wiki</a>
-                <a class="dropdown-item" href="https://bugs.gentoo.org/" title="Report issues and find common issues"><span class="fa fa-bug fa-fw"></span>
-                  Bugs</a>
-                <a class="dropdown-item" href="https://forums.gentoo.org/" title="Discuss with the community"><span class="fa fa-comments-o fa-fw"></span>
-                  Forums</a>
-                <a class="dropdown-item" href="https://packages.gentoo.org/" title="Find software for your Gentoo"><span class="fa fa-hdd-o fa-fw"></span>
-                  Packages</a>
-                <div class="dropdown-divider"></div>
-                <a class="dropdown-item" href="https://planet.gentoo.org/" title="Find out what's going on in the developer community"><span class="fa fa-rss fa-fw"></span>
-                  Planet</a>
-                <a class="dropdown-item" href="https://archives.gentoo.org/" title="Read up on past discussions"><span class="fa fa-archive fa-fw"></span>
-                  Archives</a>
-                <a class="dropdown-item" href="https://sources.gentoo.org/" title="Browse our source code"><span class="fa fa-code fa-fw"></span>
-                  Sources</a>
-                <div class="dropdown-divider"></div>
-                <a class="dropdown-item" href="https://infra-status.gentoo.org/" title="Get updates on the services provided by Gentoo"><span class="fa fa-server fa-fw"></span>
-                  Infra Status</a>
-              </div>
-            </div>
-          </div>
-        </div>
-      </div>
-    </div>
-  </div>
-  <nav class="tyrian-navbar navbar navbar-dark navbar-expand-lg bg-primary" role="navigation">
-    <div class="container">
-      <div class="navbar-header">
-        <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar-main-collapse" aria-controls="navbar-main-collapse" aria-expanded="false" aria-label="Toggle navigation">
-          <span class="navbar-toggler-icon"></span>
-        </button>
-      </div>
-      <div class="collapse navbar-collapse navbar-main-collapse" id="navbar-main-collapse">
-        <ul class="navbar-nav mr-auto">
-          <li class="nav-item"><a class="nav-link" href="/">Home</a></li>
-          <li class="nav-item"><a class="nav-link" href="/repo/gentoo.git">Gentoo Repository</a></li>
-          <li class="nav-item"><a class="nav-link" href="/repo/">Repositories</a></li>
-          <li class="nav-item"><a class="nav-link" href="/proj/">Projects</a></li>
-          <li class="nav-item"><a class="nav-link" href="/dev/">Developer Overlays</a></li>
-          <li class="nav-item"><a class="nav-link" href="/user/">User Overlays</a></li>
-          <li class="nav-item"><a class="nav-link" href="/data/">Data</a></li>
-          <li class="nav-item"><a class="nav-link" href="/sites/">Websites</a></li>
-        </ul>
-      </div>
-    </div>
-  </nav>
-</header>
-
-<div class="container pb-5">
-  <div class="row">
-  <div class="col-md-12">
-<div id='cgit'><table id='header'>
-<tr>
-<td class='logo' rowspan='2'><a href='/'><img src='/cgit.png' alt='cgit logo'/></a></td>
-<td class='main'><a href='/'>index</a> : <a title='repo/gentoo.git' href='/repo/gentoo.git/'>repo/gentoo.git</a></td><td class='form'><form method='get'>
-<select name='h' onchange='this.form.submit();'>
-<option value='master' selected='selected'>master</option>
-</select> <input type='submit' value='switch'/></form></td></tr>
-<tr><td class='sub'>Official Gentoo ebuild repository</td><td class='sub right'>Infrastructure team <infrastructure at gentoo.org></td></tr></table>
-<table class='tabs'><tr><td>
-<a href='/repo/gentoo.git/'>summary</a><a href='/repo/gentoo.git/refs/'>refs</a><a href='/repo/gentoo.git/log/dev-python/python-daemon/files/python-daemon-2.3.0-fix-py3.10.patch'>log</a><a class='active' href='/repo/gentoo.git/tree/dev-python/python-daemon/files/python-daemon-2.3.0-fix-py3.10.patch'>tree</a><a href='/repo/gentoo.git/commit/dev-python/python-daemon/files/python-daemon-2.3.0-fix-py3.10.patch'>commit</a><a href='/repo/gentoo.git/diff/dev-python/python-daemon/files/python-daemon-2.3.0-fix-py3.10.patch'>diff</a></td><td class='form'><form class='right' method='get' action='/repo/gentoo.git/log/dev-python/python-daemon/files/python-daemon-2.3.0-fix-py3.10.patch'>
-<select name='qt'>
-<option value='grep'>log msg</option>
-<option value='author'>author</option>
-<option value='committer'>committer</option>
-<option value='range'>range</option>
-</select>
-<input class='txt' type='search' size='10' name='q' value=''/>
-<input type='submit' value='search'/>
-</form>
-</td></tr></table>
-<div class='path'>path: <a href='/repo/gentoo.git/tree/'>root</a>/<a href='/repo/gentoo.git/tree/dev-python'>dev-python</a>/<a href='/repo/gentoo.git/tree/dev-python/python-daemon'>python-daemon</a>/<a href='/repo/gentoo.git/tree/dev-python/python-daemon/files'>files</a>/<a href='/repo/gentoo.git/tree/dev-python/python-daemon/files/python-daemon-2.3.0-fix-py3.10.patch'>python-daemon-2.3.0-fix-py3.10.patch</a></div><div class='content'>blob: 4fd082dc8f775219daebd98c0fcc76ec8e553478 (<a href='/repo/gentoo.git/plain/dev-python/python-daemon/files/python-daemon-2.3.0-fix-py3.10.patch'>plain</a>)
-<table summary='blob content' class='blob'>
-<tr><td class='linenumbers'><pre><a id='n1' href='#n1'>1</a>
-<a id='n2' href='#n2'>2</a>
-<a id='n3' href='#n3'>3</a>
-<a id='n4' href='#n4'>4</a>
-<a id='n5' href='#n5'>5</a>
-<a id='n6' href='#n6'>6</a>
-<a id='n7' href='#n7'>7</a>
-<a id='n8' href='#n8'>8</a>
-<a id='n9' href='#n9'>9</a>
-<a id='n10' href='#n10'>10</a>
-<a id='n11' href='#n11'>11</a>
-<a id='n12' href='#n12'>12</a>
-<a id='n13' href='#n13'>13</a>
-<a id='n14' href='#n14'>14</a>
-<a id='n15' href='#n15'>15</a>
-<a id='n16' href='#n16'>16</a>
-<a id='n17' href='#n17'>17</a>
-<a id='n18' href='#n18'>18</a>
-<a id='n19' href='#n19'>19</a>
-<a id='n20' href='#n20'>20</a>
-<a id='n21' href='#n21'>21</a>
-<a id='n22' href='#n22'>22</a>
-<a id='n23' href='#n23'>23</a>
-<a id='n24' href='#n24'>24</a>
-<a id='n25' href='#n25'>25</a>
-<a id='n26' href='#n26'>26</a>
-<a id='n27' href='#n27'>27</a>
-<a id='n28' href='#n28'>28</a>
-</pre></td>
-<td class='lines'><pre><code><style>pre { line-height: 125%; }
-td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
-span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
-td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
-span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
-.highlight .hll { background-color: #ffffcc }
-.highlight .c { color: #888888 } /* Comment */
-.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
-.highlight .k { color: #008800; font-weight: bold } /* Keyword */
-.highlight .ch { color: #888888 } /* Comment.Hashbang */
-.highlight .cm { color: #888888 } /* Comment.Multiline */
-.highlight .cp { color: #cc0000; font-weight: bold } /* Comment.Preproc */
-.highlight .cpf { color: #888888 } /* Comment.PreprocFile */
-.highlight .c1 { color: #888888 } /* Comment.Single */
-.highlight .cs { color: #cc0000; font-weight: bold; background-color: #fff0f0 } /* Comment.Special */
-.highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
-.highlight .ge { font-style: italic } /* Generic.Emph */
-.highlight .gr { color: #aa0000 } /* Generic.Error */
-.highlight .gh { color: #333333 } /* Generic.Heading */
-.highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
-.highlight .go { color: #888888 } /* Generic.Output */
-.highlight .gp { color: #555555 } /* Generic.Prompt */
-.highlight .gs { font-weight: bold } /* Generic.Strong */
-.highlight .gu { color: #666666 } /* Generic.Subheading */
-.highlight .gt { color: #aa0000 } /* Generic.Traceback */
-.highlight .kc { color: #008800; font-weight: bold } /* Keyword.Constant */
-.highlight .kd { color: #008800; font-weight: bold } /* Keyword.Declaration */
-.highlight .kn { color: #008800; font-weight: bold } /* Keyword.Namespace */
-.highlight .kp { color: #008800 } /* Keyword.Pseudo */
-.highlight .kr { color: #008800; font-weight: bold } /* Keyword.Reserved */
-.highlight .kt { color: #888888; font-weight: bold } /* Keyword.Type */
-.highlight .m { color: #0000DD; font-weight: bold } /* Literal.Number */
-.highlight .s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */
-.highlight .na { color: #336699 } /* Name.Attribute */
-.highlight .nb { color: #003388 } /* Name.Builtin */
-.highlight .nc { color: #bb0066; font-weight: bold } /* Name.Class */
-.highlight .no { color: #003366; font-weight: bold } /* Name.Constant */
-.highlight .nd { color: #555555 } /* Name.Decorator */
-.highlight .ne { color: #bb0066; font-weight: bold } /* Name.Exception */
-.highlight .nf { color: #0066bb; font-weight: bold } /* Name.Function */
-.highlight .nl { color: #336699; font-style: italic } /* Name.Label */
-.highlight .nn { color: #bb0066; font-weight: bold } /* Name.Namespace */
-.highlight .py { color: #336699; font-weight: bold } /* Name.Property */
-.highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */
-.highlight .nv { color: #336699 } /* Name.Variable */
-.highlight .ow { color: #008800 } /* Operator.Word */
-.highlight .w { color: #bbbbbb } /* Text.Whitespace */
-.highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */
-.highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */
-.highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */
-.highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */
-.highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */
-.highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */
-.highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */
-.highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */
-.highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */
-.highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */
-.highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */
-.highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */
-.highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */
-.highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */
-.highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */
-.highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */
-.highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */
-.highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */
-.highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */
-.highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */
-.highlight .vc { color: #336699 } /* Name.Variable.Class */
-.highlight .vg { color: #dd7700 } /* Name.Variable.Global */
-.highlight .vi { color: #3333bb } /* Name.Variable.Instance */
-.highlight .vm { color: #336699 } /* Name.Variable.Magic */
-.highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */</style><div class="highlight"><pre><span></span>https://pagure.io/python-daemon/c/0c67a3c6407fbf4483ccfc94a7a0d78cf3379296
-
-From: Miro Hrončok <miro at hroncok.cz>
-Date: Sep 29 2021 10:05:27 +0000
-Subject: Remove incorrect double-patch of objects in test cases.
-
-The specific test cases relying on the patches, already are decorated
-to patch the specific attributes needed. We don't need a general patch
-of the attributes in the test case setup.
-
-Signed-off-by: Ben Finney <ben+python at benfinney.id.au>
-
-<span class="gd">--- a/test/test_pidfile.py</span>
-<span class="gi">+++ b/test/test_pidfile.py</span>
-<span class="gu">@@ -367,12 +367,6 @@ class TimeoutPIDLockFile_TestCase(scaffold.TestCase):</span>
-         pidlockfile_scenarios = make_pidlockfile_scenarios()
-         self.pidlockfile_scenario = pidlockfile_scenarios['simple']
- 
-<span class="gd">-        for func_name in ['__init__', 'acquire']:</span>
-<span class="gd">-            func_patcher = unittest.mock.patch.object(</span>
-<span class="gd">-                    lockfile.pidlockfile.PIDLockFile, func_name)</span>
-<span class="gd">-            func_patcher.start()</span>
-<span class="gd">-            self.addCleanup(func_patcher.stop)</span>
-<span class="gd">-</span>
-         self.scenario = {
-                 'pidfile_path': self.pidlockfile_scenario['pidfile_path'],
-                 'acquire_timeout': self.getUniqueInteger(),
-</pre></div>
-</code></pre></td></tr></table>
-</div> <!-- class=content -->
-          </div>
-        </div>
-      </div>
-    </div>
-
-    <footer>
-      <div class="container">
-        <div class="row">
-          <div class="col-12 offset-md-2 col-md-7">
-             
-          </div>
-          <div class="col-12 col-md-3">
-            <h3 class="footerhead">Questions or comments?</h3>
-            Please feel free to <a href="https://www.gentoo.org/inside-gentoo/contact/">contact us</a>.
-          </div>
-        </div>
-        <div class="row">
-          <div class="col-2 col-sm-3 col-md-2">
-            <ul class="footerlinks three-icons">
-              <li><a href="https://twitter.com/gentoo" title="@Gentoo on Twitter"><span class="fa fa-twitter fa-fw"></span></a></li>
-              <li><a href="https://www.facebook.com/gentoo.org" title="Gentoo on Facebook"><span class="fa fa-facebook fa-fw"></span></a></li>
-              <li></li>
-            </ul>
-          </div>
-          <div class="col-10 col-sm-9 col-md-10">
-            <strong>© 2001–2021 Gentoo Foundation, Inc.</strong><br>
-            <small>
-              Gentoo is a trademark of the Gentoo Foundation, Inc.
-              The contents of this document, unless otherwise expressly stated, are licensed under the
-              <a href="https://creativecommons.org/licenses/by-sa/4.0/" rel="license">CC-BY-SA-4.0</a> license.
-              The <a href="https://www.gentoo.org/inside-gentoo/foundation/name-logo-guidelines.html">Gentoo Name and Logo Usage Guidelines</a> apply.
-            </small>
-          </div>
-        </div>
-      </div>
-    </footer>
-
-    <script src="https://assets.gentoo.org/tyrian/v2/jquery-3.3.slim.js"></script>
-    <script src="https://assets.gentoo.org/tyrian/v2/popper.min.js"></script>
-    <script src="https://assets.gentoo.org/tyrian/v2/bootstrap.min.js"></script>
-</div> <!-- id=cgit -->
-</body>
-</html>

Added: python310.patch
===================================================================
--- python310.patch	                        (rev 0)
+++ python310.patch	2021-12-08 02:28:46 UTC (rev 1065584)
@@ -0,0 +1,31 @@
+From 0c67a3c6407fbf4483ccfc94a7a0d78cf3379296 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= <miro at hroncok.cz>
+Date: Wed, 29 Sep 2021 19:59:30 +1000
+Subject: [PATCH] Remove incorrect double-patch of objects in test cases.
+
+The specific test cases relying on the patches, already are decorated
+to patch the specific attributes needed. We don't need a general patch
+of the attributes in the test case setup.
+
+Signed-off-by: Ben Finney <ben+python at benfinney.id.au>
+---
+ test/test_pidfile.py | 6 ------
+ 1 file changed, 6 deletions(-)
+
+diff --git a/test/test_pidfile.py b/test/test_pidfile.py
+index 2448855..1d0dd93 100644
+--- a/test/test_pidfile.py
++++ b/test/test_pidfile.py
+@@ -367,12 +367,6 @@ class TimeoutPIDLockFile_TestCase(scaffold.TestCase):
+         pidlockfile_scenarios = make_pidlockfile_scenarios()
+         self.pidlockfile_scenario = pidlockfile_scenarios['simple']
+ 
+-        for func_name in ['__init__', 'acquire']:
+-            func_patcher = unittest.mock.patch.object(
+-                    lockfile.pidlockfile.PIDLockFile, func_name)
+-            func_patcher.start()
+-            self.addCleanup(func_patcher.stop)
+-
+         self.scenario = {
+                 'pidfile_path': self.pidlockfile_scenario['pidfile_path'],
+                 'acquire_timeout': self.getUniqueInteger(),

Added: testtools-2.5.0.patch
===================================================================
--- testtools-2.5.0.patch	                        (rev 0)
+++ testtools-2.5.0.patch	2021-12-08 02:28:46 UTC (rev 1065584)
@@ -0,0 +1,22 @@
+From bacc1774e8ff7504092a0612197c36153731cd70 Mon Sep 17 00:00:00 2001
+From: Ben Finney <ben+python at benfinney.id.au>
+Date: Mon, 27 Sep 2021 21:17:57 +1000
+Subject: [PATCH] Drop a helper for obsolete bugs in `hasattr`.
+
+---
+ test/test_metadata.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/test/test_metadata.py b/test/test_metadata.py
+index 3bb1e3a..77e6464 100644
+--- a/test/test_metadata.py
++++ b/test/test_metadata.py
+@@ -39,7 +39,7 @@ class HasAttribute(testtools.matchers.Matcher):
+     def match(self, instance):
+         """ Assert the object `instance` has an attribute named `name`. """
+         result = None
+-        if not testtools.helpers.safe_hasattr(instance, self.attribute_name):
++        if not hasattr(instance, self.attribute_name):
+             result = AttributeNotFoundMismatch(instance, self.attribute_name)
+         return result
+ 



More information about the arch-commits mailing list