예제 #1
0
    def test_results_no_crux(self):
        capturedOutput = io.StringIO()
        sys.stdout = capturedOutput

        metadata_mock = helpers.load_mock_data(
            'psi_results_no_crux_metadata.mock')
        labdata_mock = helpers.load_mock_data(
            'psi_results_no_crux_labdata.mock')
        cruxdata_mock = helpers.load_mock_data(
            'psi_results_no_crux_cruxdata.mock')

        verbose = True

        print_out.results(metadata_mock, labdata_mock, cruxdata_mock, verbose)

        results_output = '''2021-04-24T15:36:18.287Z
Lighthouse Version: 7.3.0

Score: 100 (LCP: 0.3 s; CLS: 0.003; FCP: 0.2 s; Speed Index: 0.3 s; TTI: 0.2 s; TBT: 0 ms)

'''

        self.assertEqual(capturedOutput.getvalue(), results_output)

        sys.stdout = sys.__stdout__
예제 #2
0
    def test_results_full(self):
        capturedOutput = io.StringIO()
        sys.stdout = capturedOutput

        metadata_mock = helpers.load_mock_data(
            'psi_results_full_metadata.mock')
        labdata_mock = helpers.load_mock_data('psi_results_full_labdata.mock')
        cruxdata_mock = helpers.load_mock_data(
            'psi_results_full_cruxdata.mock')

        verbose = True

        print_out.results(metadata_mock, labdata_mock, cruxdata_mock, verbose)

        results_output = '''2021-04-24T15:31:03.860Z
Lighthouse Version: 7.3.0

Score: 73 (LCP: 2.0 s; CLS: 0.000; FCP: 1.1 s; Speed Index: 1.9 s; TTI: 2.3 s; TBT: 294 ms)

CrUX-Data
FCP: 1.4 s (AVERAGE) (Good 52% / Avg 44% / Bad 3%)
LCP: 2.0 s (FAST) (Good 84% / Avg 10% / Bad 6%)
FID: 4 ms (FAST) (Good 99% / Avg 1% / Bad 0%)
CLS: 0.190 (AVERAGE) (Good 59% / Avg 24% / Bad 17%)

'''

        self.assertEqual(capturedOutput.getvalue(), results_output)

        sys.stdout = sys.__stdout__
예제 #3
0
    def test_cleanup_data_full(self):
        psi_results_full_measurements = helpers.load_mock_data(
            'psi_results_full_measurements.mock')
        cleanup_data_full_mock = helpers.load_mock_data(
            'cleanup_data_full.mock')

        filterlist = [
            'crux_fcp_category', 'crux_lcp_category', 'crux_fid_category',
            'crux_cls_category', 'lighthouse_version', 'time'
        ]

        cleanup_data = dbtimeseries.cleanup_data(psi_results_full_measurements,
                                                 filterlist)

        self.assertDictEqual(cleanup_data, cleanup_data_full_mock)
예제 #4
0
class TestPsi_api(unittest.TestCase):
    psi_results_full = helpers.load_mock_data('psi_results_full.mock')
    psi_results_no_crux = helpers.load_mock_data('psi_results_no_crux.mock')

    def test_get_meta_data(self):
        metadata_mock = helpers.load_mock_data(
            'psi_results_full_metadata.mock')
        metadata = psi_api.get_meta_data(self.psi_results_full)

        self.assertDictEqual(metadata, metadata_mock)

    def test_get_meta_data_no_crux(self):
        metadata_mock = helpers.load_mock_data(
            'psi_results_no_crux_metadata.mock')
        metadata = psi_api.get_meta_data(self.psi_results_no_crux)

        self.assertDictEqual(metadata, metadata_mock)

    def test_get_lab_data(self):
        labdata_mock = helpers.load_mock_data('psi_results_full_labdata.mock')
        labdata = psi_api.get_lab_data(self.psi_results_full)

        self.assertDictEqual(labdata, labdata_mock)

    def test_get_lab_data_no_crux(self):
        labdata_mock = helpers.load_mock_data(
            'psi_results_no_crux_labdata.mock')
        labdata = psi_api.get_lab_data(self.psi_results_no_crux)

        self.assertDictEqual(labdata, labdata_mock)

    def test_get_crux_data(self):
        cruxdata_mock = helpers.load_mock_data(
            'psi_results_full_cruxdata.mock')
        cruxdata = psi_api.get_crux_data(self.psi_results_full)

        self.assertDictEqual(cruxdata, cruxdata_mock)

    def test_get_crux_data_no_crux(self):
        cruxdata_mock = helpers.load_mock_data(
            'psi_results_no_crux_cruxdata.mock')
        cruxdata = psi_api.get_crux_data(self.psi_results_no_crux)

        self.assertDictEqual(cruxdata, cruxdata_mock)
예제 #5
0
    def test_get_crux_data_no_crux(self):
        cruxdata_mock = helpers.load_mock_data(
            'psi_results_no_crux_cruxdata.mock')
        cruxdata = psi_api.get_crux_data(self.psi_results_no_crux)

        self.assertDictEqual(cruxdata, cruxdata_mock)
예제 #6
0
    def test_get_lab_data_no_crux(self):
        labdata_mock = helpers.load_mock_data(
            'psi_results_no_crux_labdata.mock')
        labdata = psi_api.get_lab_data(self.psi_results_no_crux)

        self.assertDictEqual(labdata, labdata_mock)
예제 #7
0
    def test_get_meta_data_no_crux(self):
        metadata_mock = helpers.load_mock_data(
            'psi_results_no_crux_metadata.mock')
        metadata = psi_api.get_meta_data(self.psi_results_no_crux)

        self.assertDictEqual(metadata, metadata_mock)
예제 #8
0
class TestPrint_out(unittest.TestCase):
    psi_results_full = helpers.load_mock_data('psi_results_full.mock')
    psi_results_no_crux = helpers.load_mock_data('psi_results_no_crux.mock')

    def test_results_full(self):
        capturedOutput = io.StringIO()
        sys.stdout = capturedOutput

        metadata_mock = helpers.load_mock_data(
            'psi_results_full_metadata.mock')
        labdata_mock = helpers.load_mock_data('psi_results_full_labdata.mock')
        cruxdata_mock = helpers.load_mock_data(
            'psi_results_full_cruxdata.mock')

        verbose = True

        print_out.results(metadata_mock, labdata_mock, cruxdata_mock, verbose)

        results_output = '''2021-04-24T15:31:03.860Z
Lighthouse Version: 7.3.0

Score: 73 (LCP: 2.0 s; CLS: 0.000; FCP: 1.1 s; Speed Index: 1.9 s; TTI: 2.3 s; TBT: 294 ms)

CrUX-Data
FCP: 1.4 s (AVERAGE) (Good 52% / Avg 44% / Bad 3%)
LCP: 2.0 s (FAST) (Good 84% / Avg 10% / Bad 6%)
FID: 4 ms (FAST) (Good 99% / Avg 1% / Bad 0%)
CLS: 0.190 (AVERAGE) (Good 59% / Avg 24% / Bad 17%)

'''

        self.assertEqual(capturedOutput.getvalue(), results_output)

        sys.stdout = sys.__stdout__

    def test_results_no_crux(self):
        capturedOutput = io.StringIO()
        sys.stdout = capturedOutput

        metadata_mock = helpers.load_mock_data(
            'psi_results_no_crux_metadata.mock')
        labdata_mock = helpers.load_mock_data(
            'psi_results_no_crux_labdata.mock')
        cruxdata_mock = helpers.load_mock_data(
            'psi_results_no_crux_cruxdata.mock')

        verbose = True

        print_out.results(metadata_mock, labdata_mock, cruxdata_mock, verbose)

        results_output = '''2021-04-24T15:36:18.287Z
Lighthouse Version: 7.3.0

Score: 100 (LCP: 0.3 s; CLS: 0.003; FCP: 0.2 s; Speed Index: 0.3 s; TTI: 0.2 s; TBT: 0 ms)

'''

        self.assertEqual(capturedOutput.getvalue(), results_output)

        sys.stdout = sys.__stdout__

    def test_results_not_verbose(self):
        verbose = False

        results = print_out.results({}, {}, {}, verbose)

        self.assertIsNone(results)

    def test_divider(self):
        capturedOutput = io.StringIO()
        sys.stdout = capturedOutput

        verbose = True

        print_out.divider(verbose)

        results_output = '''
========================================

'''

        self.assertEqual(capturedOutput.getvalue(), results_output)

        sys.stdout = sys.__stdout__

    def test_divider_not_verbose(self):
        verbose = False

        results = print_out.divider(verbose)

        self.assertIsNone(results)

    def test_banner(self):
        capturedOutput = io.StringIO()
        sys.stdout = capturedOutput

        print_out._banner(0)

        results_output = '''
'''

        self.assertEqual(capturedOutput.getvalue(), results_output)

        capturedOutput.truncate(0)
        capturedOutput.seek(0)

        print_out._banner(12)

        results_output_banner = '''============
'''

        self.assertEqual(capturedOutput.getvalue(), results_output_banner)

        sys.stdout = sys.__stdout__

    def test_info(self):
        capturedOutput = io.StringIO()
        sys.stdout = capturedOutput

        verbose = True

        print_out.info(verbose, 2, 'This is a Test.')

        results_output = '''This is a Test.


'''

        self.assertEqual(capturedOutput.getvalue(), results_output)

        sys.stdout = sys.__stdout__

    def test_info_with_format(self):
        capturedOutput = io.StringIO()
        sys.stdout = capturedOutput

        verbose = True

        print_out.info(verbose, 4, 'This {} {} {}.', ['is', 'a', 'Test'])

        results_output = '''This is a Test.




'''

        self.assertEqual(capturedOutput.getvalue(), results_output)

        sys.stdout = sys.__stdout__

    def test_info_not_verbose(self):
        verbose = False

        results = print_out.info(verbose, 200, 'Foo Bar {}', ['Baz'])

        self.assertIsNone(results)