Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Quelle  test_profiler.py

  Sprache: Python
 

#!/usr/bin/env python
from unittest import mock

import mozunit

from mozperftest.profiler import ProfilingMediator


class MockProfilerController:
    def __init__(self, name="mock_controller"):
        self.name = name
        self.start_called = False
        self.stop_called = False
        self.options = None
        self.output_path = None
        self.index = None

    def start(self, options=None):
        self.start_called = True
        self.options = options

    def stop(self, output_path, index):
        self.stop_called = True
        self.output_path = output_path
        self.index = index


class MockProfiler:
    name = "mock_profiler"

    @staticmethod
    def is_enabled():
        return True

    @staticmethod
    def get_controller():
        pass


def test_profiling_mediator():
    """Test the ProfilingMediator with custom options and multiple mock profilers, some active and inactive."""

    controller1 = MockProfilerController("controller1")
    controller2 = MockProfilerController("controller2")
    controller3 = MockProfilerController("controller3")

    mock_profiler1 = mock.MagicMock()
    mock_profiler1.is_enabled.return_value = True
    mock_profiler1.get_controller.return_value = controller1

    mock_profiler2 = mock.MagicMock()
    mock_profiler2.is_enabled.return_value = True
    mock_profiler2.get_controller.return_value = controller2

    mock_profiler3 = mock.MagicMock()
    mock_profiler3.is_enabled.return_value = False
    mock_profiler3.get_controller.return_value = controller3

    """Use a dict of mock profilers here.  We expect each profiler
       to test their own controllers directly.
    """
    with mock.patch(
        "mozperftest.profiler.PROFILERS",
        {
            "profiler1": mock_profiler1,
            "profiler2": mock_profiler2,
            "profiler3": mock_profiler3,
        },
    ):
        profiler = ProfilingMediator(["profiler1""profiler2""profiler3"])

        assert len(profiler.active_profilers) == 2
        assert controller1 in profiler.active_profilers
        assert controller2 in profiler.active_profilers
        assert controller3 not in profiler.active_profilers

        # Test start
        custom_options = "custom options here"
        profiler.start(custom_options)

        assert controller1.start_called
        assert controller1.options == custom_options
        assert controller2.start_called
        assert controller2.options == custom_options
        assert not controller3.start_called

        # Test stop
        output_path = "/mock/output/path"
        index = 3
        profiler.stop(output_path, index)

        assert controller1.stop_called
        assert controller1.output_path == output_path
        assert controller1.index == index
        assert controller2.stop_called
        assert controller2.output_path == output_path
        assert controller2.index == index
        assert not controller3.stop_called


def test_profiling_mediator_defaults_to_all_profilers():
    """Test that ProfilingMediator defaults to all profilers when profilers=None."""

    controller1 = MockProfilerController("controller1")
    controller2 = MockProfilerController("controller2")

    mock_profiler1 = mock.MagicMock()
    mock_profiler1.is_enabled.return_value = True
    mock_profiler1.get_controller.return_value = controller1

    mock_profiler2 = mock.MagicMock()
    mock_profiler2.is_enabled.return_value = True
    mock_profiler2.get_controller.return_value = controller2

    with mock.patch(
        "mozperftest.profiler.PROFILERS",
        {
            "profiler1": mock_profiler1,
            "profiler2": mock_profiler2,
        },
    ):
        # Pass None to use all profilers
        profiler = ProfilingMediator(None)

        assert len(profiler.active_profilers) == 2
        assert controller1 in profiler.active_profilers
        assert controller2 in profiler.active_profilers


if __name__ == "__main__":
    mozunit.main()

Messung V0.5 in Prozent
C=91 H=95 G=92

¤ Dauer der Verarbeitung: 0.4 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Open Source Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Statistik
#Sources=277311
#Domains=752002