commit:     d2580b93b3b7b94215d4764295dc082fa582152e
Author:     Alessandro Barbieri <lssndrbarbieri <AT> gmail <DOT> com>
AuthorDate: Sun Sep 26 17:05:40 2021 +0000
Commit:     Alessandro Barbieri <lssndrbarbieri <AT> gmail <DOT> com>
CommitDate: Sun Sep 26 18:37:08 2021 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=d2580b93

dev-python/testrepository: initial import

Signed-off-by: Alessandro Barbieri <lssndrbarbieri <AT> gmail.com>

 dev-python/testrepository/Manifest                 |   1 +
 .../testrepository-0.0.20-test-backport.patch      |  62 ++++++++++++
 .../testrepository-0.0.20-test-backport1.patch     |  16 ++++
 .../testrepository-0.0.20-test-backport2.patch     |  49 ++++++++++
 dev-python/testrepository/metadata.xml             |  14 +++
 .../testrepository-0.0.20-r200.ebuild              | 106 +++++++++++++++++++++
 6 files changed, 248 insertions(+)

diff --git a/dev-python/testrepository/Manifest 
b/dev-python/testrepository/Manifest
new file mode 100644
index 000000000..013694ad9
--- /dev/null
+++ b/dev-python/testrepository/Manifest
@@ -0,0 +1 @@
+DIST testrepository-0.0.20.tar.gz 84956 BLAKE2B 
9b9a8e0c21754fe8ba019b58024f137e72b4341cb368fb48dc48039f512b232ca4f03f16c2596aa34b428d69097db939e5776417a7d26f5a8508c8f0c1f1a5bf
 SHA512 
df14500e2b27b6f39d9d4c4f42961efd63dfe25186e561eb1678952a8ab9311f17c36b78819fea33e0ac879c47a33d45c31ff58be017609c8a6157905ee712d6

diff --git 
a/dev-python/testrepository/files/testrepository-0.0.20-test-backport.patch 
b/dev-python/testrepository/files/testrepository-0.0.20-test-backport.patch
new file mode 100644
index 000000000..d7ab87c06
--- /dev/null
+++ b/dev-python/testrepository/files/testrepository-0.0.20-test-backport.patch
@@ -0,0 +1,62 @@
+From 8f8ab15fafdad6db850c84772323b32375b09285 Mon Sep 17 00:00:00 2001
+From: Robert Collins <robe...@robertcollins.net>
+Date: Tue, 10 Mar 2015 15:21:49 +1300
+Subject: [PATCH] Fixup tests with latest testtools.
+
+Testtools has started chunking exceptions (which is perhaps good,
+perhaps bad) - but we shouldn't depend on the exact behaviour in it
+for our tests.
+--- a/NEWS
++++ b/NEWS
+@@ -5,6 +5,12 @@ testrepository release notes
+ NEXT (In development)
+ +++++++++++++++++++++
+ 
++CHANGES
++-------
++
++* Isolate the testrepository test suite from the chunking (or otherwise)
++  behaviour of testtools' exception handlers. (Robert Collins)
++
+ 0.0.20
+ ++++++
+ 
+--- a/testrepository/tests/test_repository.py
++++ b/testrepository/tests/test_repository.py
+@@ -28,6 +28,7 @@
+ from testresources import TestResource
+ from testtools import (
+     clone_test_with_new_id,
++    content,
+     PlaceHolder,
+     )
+ import testtools
+@@ -103,19 +104,24 @@ class Case(ResourcedTestCase):
+     def passing(self):
+         pass
+ 
+-    def failing(self):
+-        self.fail("oops")
+-
+     def unexpected_success(self):
+         self.expectFailure("unexpected success", self.assertTrue, True)
+ 
+ 
++class FailingCase:
++
++    def run(self, result):
++        result.startTest(self)
++        result.addError(
++            self, None, details={'traceback': content.text_content("")})
++        result.stopTest(self)
++
+ def make_test(id, should_pass):
+     """Make a test."""
+     if should_pass:
+         case = Case("passing")
+     else:
+-        case = Case("failing")
++        case = FailingCase()
+     return clone_test_with_new_id(case, id)
+ 
+ 

diff --git 
a/dev-python/testrepository/files/testrepository-0.0.20-test-backport1.patch 
b/dev-python/testrepository/files/testrepository-0.0.20-test-backport1.patch
new file mode 100644
index 000000000..655d2c3e7
--- /dev/null
+++ b/dev-python/testrepository/files/testrepository-0.0.20-test-backport1.patch
@@ -0,0 +1,16 @@
+From d3d6cac4fd42f2067c0dd81be748853f81c348fc Mon Sep 17 00:00:00 2001
+From: Robert Collins <robe...@robertcollins.net>
+Date: Sun, 12 Jul 2015 21:37:34 +1200
+Subject: [PATCH] Fix 3.3+ tests with nested classnames.
+
+--- a/testrepository/tests/ui/test_cli.py
++++ b/testrepository/tests/ui/test_cli.py
+@@ -157,7 +157,7 @@ def method(self):
+         self.assertThat(ui._stdout.buffer.getvalue().decode('utf8'),
+             DocTestMatches("""\
+ ======================================================================
+-FAIL: testrepository.tests.ui.test_cli.Case.method
++FAIL: testrepository.tests.ui.test_cli...Case.method
+ ----------------------------------------------------------------------
+ ...Traceback (most recent call last):...
+   File "...test_cli.py", line ..., in method

diff --git 
a/dev-python/testrepository/files/testrepository-0.0.20-test-backport2.patch 
b/dev-python/testrepository/files/testrepository-0.0.20-test-backport2.patch
new file mode 100644
index 000000000..69d591c2f
--- /dev/null
+++ b/dev-python/testrepository/files/testrepository-0.0.20-test-backport2.patch
@@ -0,0 +1,49 @@
+From e2f84ae6b2bcf89221613056d0c45dd308f46d62 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Jelmer=20Vernoo=C4=B3?= <jel...@jelmer.uk>
+Date: Thu, 5 Apr 2018 01:02:40 +0100
+Subject: [PATCH] Fix the testrepository tests with newer versions of
+ testtools.
+
+--- a/testrepository/tests/commands/test_failing.py
++++ b/testrepository/tests/commands/test_failing.py
+@@ -90,7 +90,7 @@ class TestCommand(ResourcedTestCase):
+         finally:
+             log.stopTestRun()
+         self.assertEqual(
+-            log._events, [
++            [tuple(ev) for ev in log._events], [
+             ('startTestRun',),
+             ('status', 'failing', 'inprogress', None, True, None, None, False,
+              None, None, Wildcard),
+--- a/testrepository/tests/test_repository.py
++++ b/testrepository/tests/test_repository.py
+@@ -113,9 +113,10 @@ class FailingCase:
+     def run(self, result):
+         result.startTest(self)
+         result.addError(
+-            self, None, details={'traceback': content.text_content("")})
++            self, None, details={'traceback': content.text_content("tb")})
+         result.stopTest(self)
+ 
++
+ def make_test(id, should_pass):
+     """Make a test."""
+     if should_pass:
+@@ -409,7 +410,7 @@ class TestRepositoryContract(ResourcedTestCase):
+         finally:
+             log.stopTestRun()
+         self.assertEqual(
+-            log._events, [
++            [tuple(ev) for ev in log._events], [
+             ('startTestRun',),
+             ('status',
+              'testrepository.tests.test_repository.Case.method',
+@@ -465,7 +466,7 @@ class TestRepositoryContract(ResourcedTestCase):
+         finally:
+             log.stopTestRun()
+         self.assertEqual(
+-            log._events,
++            [tuple(ev) for ev in log._events],
+             [
+             ('startTestRun',),
+             ('status',

diff --git a/dev-python/testrepository/metadata.xml 
b/dev-python/testrepository/metadata.xml
new file mode 100644
index 000000000..3491fff61
--- /dev/null
+++ b/dev-python/testrepository/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd";>
+<pkgmetadata>
+       <maintainer type="person">
+               <description>Comaintainers welcome</description>
+               <email>lssndrbarbi...@gmail.com</email>
+               <name>Alessandro Barbieri</name>
+       </maintainer>
+       <upstream>
+               <remote-id 
type="github">testing-cabal/testrepository</remote-id>
+               <remote-id type="pypi">testrepository</remote-id>
+               <remote-id type="launchpad">testrepository</remote-id>
+       </upstream>
+</pkgmetadata>

diff --git a/dev-python/testrepository/testrepository-0.0.20-r200.ebuild 
b/dev-python/testrepository/testrepository-0.0.20-r200.ebuild
new file mode 100644
index 000000000..4a7be62bb
--- /dev/null
+++ b/dev-python/testrepository/testrepository-0.0.20-r200.ebuild
@@ -0,0 +1,106 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Required for test phase
+DISTUTILS_IN_SOURCE_BUILD=1
+EPYTEST_DESELECT=(
+       
testrepository/tests/test_repository.py::TestRepositoryContract::test_can_get_inserter
+       
testrepository/tests/test_repository.py::TestRepositoryContract::test_can_initialise_with_param
+       
testrepository/tests/test_repository.py::TestRepositoryContract::test_count
+       
testrepository/tests/test_repository.py::TestRepositoryContract::test_get_failing_complete_runs_delete_missing_failures
+       
testrepository/tests/test_repository.py::TestRepositoryContract::test_get_failing_empty
+       
testrepository/tests/test_repository.py::TestRepositoryContract::test_get_failing_get_id
+       
testrepository/tests/test_repository.py::TestRepositoryContract::test_get_failing_get_subunit_stream
+       
testrepository/tests/test_repository.py::TestRepositoryContract::test_get_failing_one_run
+       
testrepository/tests/test_repository.py::TestRepositoryContract::test_get_failing_partial_runs_preserve_missing_failures
+       
testrepository/tests/test_repository.py::TestRepositoryContract::test_get_latest_run
+       
testrepository/tests/test_repository.py::TestRepositoryContract::test_get_latest_run_empty_repo
+       
testrepository/tests/test_repository.py::TestRepositoryContract::test_get_subunit_from_test_run
+       
testrepository/tests/test_repository.py::TestRepositoryContract::test_get_test_from_test_run
+       
testrepository/tests/test_repository.py::TestRepositoryContract::test_get_test_ids
+       
testrepository/tests/test_repository.py::TestRepositoryContract::test_get_test_run
+       
testrepository/tests/test_repository.py::TestRepositoryContract::test_get_test_run_get_id
+       
testrepository/tests/test_repository.py::TestRepositoryContract::test_get_test_run_missing_keyerror
+       
testrepository/tests/test_repository.py::TestRepositoryContract::test_get_times_unknown_tests_are_unknown
+       
testrepository/tests/test_repository.py::TestRepositoryContract::test_insert_stream_smoke
+       
testrepository/tests/test_repository.py::TestRepositoryContract::test_inserted_exists_no_impact_on_test_times
+       
testrepository/tests/test_repository.py::TestRepositoryContract::test_inserted_test_times_known
+       
testrepository/tests/test_repository.py::TestRepositoryContract::test_inserting_creates_id
+       
testrepository/tests/test_repository.py::TestRepositoryContract::test_latest_id_empty
+       
testrepository/tests/test_repository.py::TestRepositoryContract::test_latest_id_nonempty
+       
testrepository/tests/test_repository.py::TestRepositoryContract::test_open
+       
testrepository/tests/test_repository.py::TestRepositoryContract::test_open_non_existent
+       
testrepository/tests/test_repository.py::TestRepositoryContract::test_unexpected_success
+       
testrepository/tests/test_ui.py::TestUIContract::test_args_are_exposed_at_arguments
+       testrepository/tests/test_ui.py::TestUIContract::test_exec_subprocess
+       
testrepository/tests/test_ui.py::TestUIContract::test_factory_input_stream_args
+       testrepository/tests/test_ui.py::TestUIContract::test_factory_noargs
+       testrepository/tests/test_ui.py::TestUIContract::test_here
+       
testrepository/tests/test_ui.py::TestUIContract::test_iter_streams_load_stdin_use_case
+       
testrepository/tests/test_ui.py::TestUIContract::test_iter_streams_unexpected_type_raises
+       testrepository/tests/test_ui.py::TestUIContract::test_make_result
+       
testrepository/tests/test_ui.py::TestUIContract::test_make_result_previous_run
+       testrepository/tests/test_ui.py::TestUIContract::test_options_at_options
+       
testrepository/tests/test_ui.py::TestUIContract::test_options_on_command_picked_up
+       
testrepository/tests/test_ui.py::TestUIContract::test_options_when_set_at_options
+       testrepository/tests/test_ui.py::TestUIContract::test_output_error
+       testrepository/tests/test_ui.py::TestUIContract::test_output_rest
+       testrepository/tests/test_ui.py::TestUIContract::test_output_stream
+       
testrepository/tests/test_ui.py::TestUIContract::test_output_stream_non_utf8
+       testrepository/tests/test_ui.py::TestUIContract::test_output_summary
+       testrepository/tests/test_ui.py::TestUIContract::test_output_table
+       testrepository/tests/test_ui.py::TestUIContract::test_output_tests
+       testrepository/tests/test_ui.py::TestUIContract::test_output_values
+       testrepository/tests/test_ui.py::TestUIContract::test_set_command
+       
testrepository/tests/test_ui.py::TestUIContract::test_set_command_checks_args_invalid_arg
+       
testrepository/tests/test_ui.py::TestUIContract::test_set_command_checks_args_missing_arg
+       
testrepository/tests/test_ui.py::TestUIContract::test_set_command_checks_args_unwanted_arg
+       
testrepository/tests/test_ui.py::TestUIContract::test_set_command_with_no_name_works
+       
testrepository/tests/test_ui.py::TestUIContract::test_subprocesses_have_stdin
+       
testrepository/tests/test_ui.py::TestUIContract::test_subprocesses_have_stdout
+       
testrepository/tests/commands/test_run.py::TestReturnCodeToSubunit::test_returncode_0_no_change
+       
testrepository/tests/commands/test_run.py::TestReturnCodeToSubunit::test_returncode_nonzero_fail_appended_to_content
+       
testrepository/tests/ui/test_cli.py::TestCLIUI::test_dash_dash_help_shows_help
+)
+PYTHON_COMPAT=( python3_8 )
+PYTHON_REQ_USE="threads(+)"
+
+inherit distutils-r1
+
+DESCRIPTION="A repository of test results"
+HOMEPAGE="
+       https://launchpad.net/testrepository
+       https://pypi.org/project/testrepository
+       https://github.com/testing-cabal/testrepository
+"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="Apache-2.0 BSD"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+       >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}]
+       >=dev-python/testtools-0.9.30[${PYTHON_USEDEP}]
+       dev-python/fixtures[${PYTHON_USEDEP}]
+"
+#bzr is listed but presumably req'd for a live repo test run
+DEPEND="
+       ${RDEPEND}
+       dev-python/setuptools[${PYTHON_USEDEP}]
+       test? (
+               dev-python/testresources[${PYTHON_USEDEP}]
+               dev-python/testscenarios[${PYTHON_USEDEP}]
+               dev-python/pytz[${PYTHON_USEDEP}]
+       )
+"
+
+PATCHES=(
+       "${FILESDIR}/${P}-test-backport.patch"
+       "${FILESDIR}/${P}-test-backport1.patch"
+       "${FILESDIR}/${P}-test-backport2.patch"
+)
+
+distutils_enable_tests pytest

Reply via email to