~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/__init__.py

  • Committer: Patch Queue Manager
  • Date: 2013-06-24 13:05:33 UTC
  • mfrom: (6578.1.1 2.6-merges-2.5)
  • Revision ID: pqm@pqm.ubuntu.com-20130624130533-51c8htekjd8mix3u
(jameinel) Merge bzr/2.5 into trunk,
 including the fix for bug #855155 (John A Meinel)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2005-2013, 2015, 2016 Canonical Ltd
 
1
# Copyright (C) 2005-2011 Canonical Ltd
2
2
#
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
32
32
import errno
33
33
import itertools
34
34
import logging
35
 
import math
36
35
import os
37
36
import platform
38
37
import pprint
360
359
            return float(''.join(details['benchtime'].iter_bytes()))
361
360
        return getattr(testCase, "_benchtime", None)
362
361
 
363
 
    def _delta_to_float(self, a_timedelta, precision):
364
 
        # This calls ceiling to ensure that the most pessimistic view of time
365
 
        # taken is shown (rather than leaving it to the Python %f operator
366
 
        # to decide whether to round/floor/ceiling. This was added when we
367
 
        # had pyp3 test failures that suggest a floor was happening.
368
 
        shift = 10 ** precision
369
 
        return math.ceil((a_timedelta.days * 86400.0 + a_timedelta.seconds +
370
 
            a_timedelta.microseconds / 1000000.0) * shift) / shift
371
 
 
372
362
    def _elapsedTestTimeString(self):
373
363
        """Return a time string for the overall time the current test has taken."""
374
364
        return self._formatTime(self._delta_to_float(
375
 
            self._now() - self._start_datetime, 3))
 
365
            self._now() - self._start_datetime))
376
366
 
377
367
    def _testTimeString(self, testCase):
378
368
        benchmark_time = self._extractBenchmarkTime(testCase)
1369
1359
            % (message,
1370
1360
               pprint.pformat(a), pprint.pformat(b)))
1371
1361
 
1372
 
    # FIXME: This is deprecated in unittest2 but plugins may still use it so we
1373
 
    # need a deprecation period for them -- vila 2016-02-01
1374
1362
    assertEquals = assertEqual
1375
1363
 
1376
1364
    def assertEqualDiff(self, a, b, message=None):
1379
1367
        This is intended for use with multi-line strings where it can
1380
1368
        be hard to find the differences by eye.
1381
1369
        """
1382
 
        # TODO: perhaps override assertEqual to call this for strings?
 
1370
        # TODO: perhaps override assertEquals to call this for strings?
1383
1371
        if a == b:
1384
1372
            return
1385
1373
        if message is None:
2052
2040
        if err:
2053
2041
            self.log('errors:\n%r', err)
2054
2042
        if retcode is not None:
2055
 
            self.assertEqual(retcode, result,
 
2043
            self.assertEquals(retcode, result,
2056
2044
                              message='Unexpected return code')
2057
2045
        return result, out, err
2058
2046
 
3804
3792
 
3805
3793
    :return: (absents, duplicates) absents is a list containing the test found
3806
3794
        in id_list but not in test_suite, duplicates is a list containing the
3807
 
        tests found multiple times in test_suite.
 
3795
        test found multiple times in test_suite.
3808
3796
 
3809
3797
    When using a prefined test id list, it may occurs that some tests do not
3810
3798
    exist anymore or that some tests use the same id. This function warns the
4353
4341
    """Copy test and apply scenario to it.
4354
4342
 
4355
4343
    :param test: A test to adapt.
4356
 
    :param scenario: A tuple describing the scenario.
 
4344
    :param scenario: A tuple describing the scenarion.
4357
4345
        The first element of the tuple is the new test id.
4358
4346
        The second element is a dict containing attributes to set on the
4359
4347
        test.