Esempio n. 1
0
 def diff(realized_repository):
     result = shed.diff_repo(ctx, realized_repository, **kwds)
     # Collect data about what happened
     collected_data['results']['total'] += 1
     if result >= 200:
         collected_data['results']['errors'] += 1
     elif result > 0:
         collected_data['results']['failures'] += 1
     collected_data['tests'].append({
         'classname': realized_repository.name,
         'result': result,
     })
     return result
Esempio n. 2
0
    def diff(realized_repository):

        # We create a temporary redirection from kwds's
        # output to our tempfile. This lets us capture the
        # diff and redirect it to their requested location as
        # well as to the XUnit report.
        diff_output = tempfile.NamedTemporaryFile(mode='r')
        user_requested_output = kwds.get('output', None)
        # Replace their output handle with ours
        kwds['output'] = diff_output.name

        captured_io = {}
        with captured_io_for_xunit(kwds, captured_io):
            result = shed.diff_repo(ctx, realized_repository, **kwds)

        # May be extraneous but just want to ensure entire file is written
        # before a copy is made.
        diff_output.flush()
        # Redirect a copy to user_requested_output if they did:
        if user_requested_output is not None:
            shutil.copy(diff_output.name, user_requested_output)
        else:
            with open(diff_output.name, "r") as f:
                sys.stdout.write(f.read())
        # Rewind to the start of the file and read it in its entirety
        diff_output.seek(0)
        diff_output_contents = diff_output.read()
        diff_output.close()

        # Collect data about what happened
        collected_data['results']['total'] += 1
        xunit_case = {
            'name': 'shed-diff',
            'classname': realized_repository.name,
            'time': captured_io["time"],
            'stdout': captured_io["stdout"],
            'stderr': captured_io["stderr"],
        }
        if result >= 200:
            collected_data['results']['errors'] += 1
            xunit_case.update({
                'errorType': 'DiffError',
                'errorMessage': 'Error diffing repositories',
                'errorContent': escape(diff_output_contents),
                'time': captured_io["time"],
            })
        elif result > 2:
            collected_data['results']['failures'] += 1
            xunit_case.update({
                'errorType': 'PlanemoDiffError',
                'errorMessage': 'Planemo error diffing repositories',
                'errorContent': escape(diff_output_contents),
            })
        elif result == 2:
            collected_data['results']['failures'] += 1
            xunit_case.update({
                'errorType': 'RepoDoesNotExist',
                'errorMessage': 'Target Repository does not exist',
                'errorContent': escape(diff_output_contents),
            })
        elif result == 1:
            collected_data['results']['failures'] += 1
            xunit_case.update({
                'errorType': 'Different',
                'errorMessage': 'Repository is different',
                'errorContent': escape(diff_output_contents),
            })

        # Append our xunit test case
        collected_data['tests'].append(xunit_case)

        return result
Esempio n. 3
0
    def diff(realized_repository):

        # We create a temporary redirection from kwds's
        # output to our tempfile. This lets us capture the
        # diff and redirect it to their requested location as
        # well as to the XUnit report.
        diff_output = tempfile.NamedTemporaryFile(mode="rw+b")
        user_requested_output = kwds.get("output", None)
        # Replace their output handle with ours
        kwds["output"] = diff_output.name

        captured_io = {}
        with captured_io_for_xunit(kwds, captured_io):
            result = shed.diff_repo(ctx, realized_repository, **kwds)

        # May be extraneous but just want to ensure entire file is written
        # before a copy is made.
        diff_output.flush()
        # Redirect a copy to user_requested_output if they did:
        if user_requested_output is not None:
            shutil.copy(diff_output.name, user_requested_output)

        # Rewind to the start of the file and read it in its entirety
        diff_output.seek(0)
        diff_output_contents = diff_output.read()
        diff_output.close()

        # Collect data about what happened
        collected_data["results"]["total"] += 1
        xunit_case = {
            "name": "shed-diff",
            "classname": realized_repository.name,
            "time": captured_io["time"],
            "stdout": captured_io["stdout"],
            "stderr": captured_io["stderr"],
        }
        if result >= 200:
            collected_data["results"]["errors"] += 1
            xunit_case.update(
                {
                    "errorType": "DiffError",
                    "errorMessage": "Error diffing repositories",
                    "errorContent": escape(diff_output_contents),
                    "time": captured_io["time"],
                }
            )
        elif result > 2:
            collected_data["results"]["failures"] += 1
            xunit_case.update(
                {
                    "errorType": "PlanemoDiffError",
                    "errorMessage": "Planemo error diffing repositories",
                    "errorContent": escape(diff_output_contents),
                }
            )
        elif result == 2:
            collected_data["results"]["failures"] += 1
            xunit_case.update(
                {
                    "errorType": "RepoDoesNotExist",
                    "errorMessage": "Target Repository does not exist",
                    "errorContent": escape(diff_output_contents),
                }
            )
        elif result == 1:
            collected_data["results"]["failures"] += 1
            xunit_case.update(
                {
                    "errorType": "Different",
                    "errorMessage": "Repository is different",
                    "errorContent": escape(diff_output_contents),
                }
            )

        # Append our xunit test case
        collected_data["tests"].append(xunit_case)

        return result
    def diff(realized_repository):

        # We create a temporary redirection from kwds's
        # output to our tempfile. This lets us capture the
        # diff and redirect it to their requested location as
        # well as to the XUnit report.
        diff_output = tempfile.NamedTemporaryFile(mode='r')
        user_requested_output = kwds.get('output', None)
        # Replace their output handle with ours
        kwds['output'] = diff_output.name

        captured_io = {}
        with captured_io_for_xunit(kwds, captured_io):
            result = shed.diff_repo(ctx, realized_repository, **kwds)

        # May be extraneous but just want to ensure entire file is written
        # before a copy is made.
        diff_output.flush()
        # Redirect a copy to user_requested_output if they did:
        if user_requested_output is not None:
            shutil.copy(diff_output.name, user_requested_output)
        else:
            with open(diff_output.name, "r") as f:
                sys.stdout.write(f.read())
        # Rewind to the start of the file and read it in its entirety
        diff_output.seek(0)
        diff_output_contents = diff_output.read()
        diff_output.close()

        # Collect data about what happened
        collected_data['results']['total'] += 1
        xunit_case = {
            'name': 'shed-diff',
            'classname': realized_repository.name,
            'time': captured_io["time"],
            'stdout': captured_io["stdout"],
            'stderr': captured_io["stderr"],
        }
        if result >= 200:
            collected_data['results']['errors'] += 1
            xunit_case.update({
                'errorType': 'DiffError',
                'errorMessage': 'Error diffing repositories',
                'errorContent': escape(diff_output_contents),
                'time': captured_io["time"],
            })
        elif result > 2:
            collected_data['results']['failures'] += 1
            xunit_case.update({
                'errorType': 'PlanemoDiffError',
                'errorMessage': 'Planemo error diffing repositories',
                'errorContent': escape(diff_output_contents),
            })
        elif result == 2:
            collected_data['results']['failures'] += 1
            xunit_case.update({
                'errorType': 'RepoDoesNotExist',
                'errorMessage': 'Target Repository does not exist',
                'errorContent': escape(diff_output_contents),
            })
        elif result == 1:
            collected_data['results']['failures'] += 1
            xunit_case.update({
                'errorType': 'Different',
                'errorMessage': 'Repository is different',
                'errorContent': escape(diff_output_contents),
            })

        # Append our xunit test case
        collected_data['tests'].append(xunit_case)

        return result
Esempio n. 5
0
 def diff(realized_repository):
     return shed.diff_repo(ctx, realized_repository, **kwds)