Exemplo n.º 1
0
    def test_get_results_two_dates_same_revision_id(self):
        """check that PerfTable handles 2 dates in the data correctly"""

        # generate a second block of performance history data
        # with the same length as the first block
        new_date = float(self.lines[0].split(None, 2)[1]) + 1
        new_line = '%s %s %s' % (
            self.lines[0].split(None, 2)[0],
            new_date,
            self.lines[0].split(None, 2)[2],
        )
        lines = [new_line] + self.lines[1:] + self.lines

        perftable = PerfTable(lines)
        results = list(perftable.get_results())
        assert len(results) == 2* self.num_test_ids

        # get results for one (test_id, revision_id) pair
        # and check that get_result returns a result object for each date
        test_ids = perftable.list_values_of('test_id')[:1]
        revision_ids = perftable.list_values_of('revision_id')[:1]
        results = list(perftable.get_results(test_ids = test_ids,
                                             revision_ids = revision_ids))
        assert len(results) == 1+1
        r0 = results[0]
        r1 = results[1]
        assert r0 != r1
        #check that r0 and r1 are equal, except the date is different
        r0.date = r1.date = None
        assert r0.test_id == r1.test_id
Exemplo n.º 2
0
 def test_list_values_of(self):
     perftable = PerfTable(self.lines)
     assert perftable.list_values_of('date') == [1152625530.0]
     assert perftable.list_values_of('revision_id') == ( 
                  ['[email protected]'])
     assert len(perftable.list_values_of('test_id')) == (
                       self.num_test_ids)
     # check number of unique test ids
     assert len(dict.fromkeys(
                             perftable.list_values_of('test_id')).keys()) == 2
Exemplo n.º 3
0
    def test_get_results(self):
        """check that get_results returns the right number of PerfResults"""

        perftable = PerfTable()
        perftable.add_lines(self.lines)
        results = list(perftable.get_results())
        assert len(results) == self.num_test_ids
        test_ids = perftable.list_values_of('test_id')
        # check that get_result returns all results for an empty test_id argument
        assert list(perftable.get_results()) == (list(
            perftable.get_results(test_ids=test_ids)))
        # check that get_results returns only the requested (number of) results
        results = list(perftable.get_results(test_ids=test_ids[1:]))
        assert len(results) == self.num_test_ids - 1
Exemplo n.º 4
0
    def test_parse(self):
        """read one line and ensure the data is read correctly"""
        lines = self.lines[:2]
        t = PerfTable()
        data = list(t.parse(lines))
        assert len(data) == 1  # check that one object was created

        assert isinstance(data[0], PerfResult)  # is it really a PerfResult
        pr = data[0]
        expected = PerfResult(
            date=1152625530.0,
            revision_id='[email protected]',
            elapsed_time=100,
            test_id=('package.module.test_name1'),
        )
        assert pr.test_id == expected.test_id
        assert pr.revision_id == expected.revision_id
        assert pr.elapsed_time == expected.elapsed_time
        assert pr.date == expected.date
Exemplo n.º 5
0
 def test_parse(self):
     """read one line and ensure the data is read correctly"""
     lines = self.lines[:2]
     t = PerfTable()
     data = list(t.parse(lines))
     assert len(data) == 1 # check that one object was created
     
     assert isinstance(data[0], PerfResult) # is it really a PerfResult
     pr = data[0]
     expected = PerfResult(
         date=1152625530.0,
         revision_id='[email protected]',
         elapsed_time=100,
         test_id=('package.module.test_name1'),
     )
     assert pr.test_id == expected.test_id
     assert pr.revision_id == expected.revision_id
     assert pr.elapsed_time == expected.elapsed_time
     assert pr.date == expected.date
Exemplo n.º 6
0
    def test_get_results_two_dates_same_revision_id(self):
        """check that PerfTable handles 2 dates in the data correctly"""

        # generate a second block of performance history data
        # with the same length as the first block
        new_date = float(self.lines[0].split(None, 2)[1]) + 1
        new_line = '%s %s %s' % (
            self.lines[0].split(None, 2)[0],
            new_date,
            self.lines[0].split(None, 2)[2],
        )
        lines = [new_line] + self.lines[1:] + self.lines

        perftable = PerfTable(lines)
        results = list(perftable.get_results())
        assert len(results) == 2 * self.num_test_ids

        # get results for one (test_id, revision_id) pair
        # and check that get_result returns a result object for each date
        test_ids = perftable.list_values_of('test_id')[:1]
        revision_ids = perftable.list_values_of('revision_id')[:1]
        results = list(
            perftable.get_results(test_ids=test_ids,
                                  revision_ids=revision_ids))
        assert len(results) == 1 + 1
        r0 = results[0]
        r1 = results[1]
        assert r0 != r1
        #check that r0 and r1 are equal, except the date is different
        r0.date = r1.date = None
        assert r0.test_id == r1.test_id
Exemplo n.º 7
0
    def test_get_results(self):
        """check that get_results returns the right number of PerfResults"""

        perftable = PerfTable()
        perftable.add_lines(self.lines)
        results = list(perftable.get_results())
        assert len(results) == self.num_test_ids
        test_ids = perftable.list_values_of('test_id')
        # check that get_result returns all results for an empty test_id argument
        assert list(perftable.get_results()) == (
                          list(perftable.get_results(test_ids = test_ids)))
        # check that get_results returns only the requested (number of) results
        results = list(perftable.get_results(test_ids = test_ids[1:]))
        assert len(results) == self.num_test_ids -1
Exemplo n.º 8
0
    def test_multiline_parse(self):
        """ensure all lines are parsed correctly. """

        lines = self.lines
        results = list(PerfTable().parse(lines))
        assert len(results) == self.num_test_ids  # was all data read?
        assert len(dict.fromkeys([r.revision_id for r in results
                                  ])) == (1
                                          )  # check for one unique revision id

        # check for self.num_test_ids unique test ids
        assert len(dict.fromkeys([r.test_id
                                  for r in results])) == (self.num_test_ids)
Exemplo n.º 9
0
 def test_list_values_of(self):
     perftable = PerfTable(self.lines)
     assert perftable.list_values_of('date') == [1152625530.0]
     assert perftable.list_values_of('revision_id') == ([
         '[email protected]'
     ])
     assert len(perftable.list_values_of('test_id')) == (self.num_test_ids)
     # check number of unique test ids
     assert len(dict.fromkeys(
         perftable.list_values_of('test_id')).keys()) == 2
Exemplo n.º 10
0
 def test_page_rendering_on_sample_dataset(self):
     perftable = PerfTable(testdata.splitlines())
     page = Page(perftable).render()
     self.check_serialize_html(page)
Exemplo n.º 11
0
 def setup_method(self, method):
     self.lines = testlines[:]
     self.perftable = PerfTable(self.lines)