/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_osutils.py

Merge bzr.dev.

Show diffs side-by-side

added added

removed removed

Lines of Context:
150
150
        finally:
151
151
            os.umask(orig_umask)
152
152
 
 
153
    def assertFormatedDelta(self, expected, seconds):
 
154
        """Assert osutils.format_delta formats as expected"""
 
155
        actual = osutils.format_delta(seconds)
 
156
        self.assertEqual(expected, actual)
 
157
 
 
158
    def test_format_delta(self):
 
159
        self.assertFormatedDelta('0 seconds ago', 0)
 
160
        self.assertFormatedDelta('1 second ago', 1)
 
161
        self.assertFormatedDelta('10 seconds ago', 10)
 
162
        self.assertFormatedDelta('59 seconds ago', 59)
 
163
        self.assertFormatedDelta('89 seconds ago', 89)
 
164
        self.assertFormatedDelta('1 minute, 30 seconds ago', 90)
 
165
        self.assertFormatedDelta('3 minutes, 0 seconds ago', 180)
 
166
        self.assertFormatedDelta('3 minutes, 1 second ago', 181)
 
167
        self.assertFormatedDelta('10 minutes, 15 seconds ago', 615)
 
168
        self.assertFormatedDelta('30 minutes, 59 seconds ago', 1859)
 
169
        self.assertFormatedDelta('31 minutes, 0 seconds ago', 1860)
 
170
        self.assertFormatedDelta('60 minutes, 0 seconds ago', 3600)
 
171
        self.assertFormatedDelta('89 minutes, 59 seconds ago', 5399)
 
172
        self.assertFormatedDelta('1 hour, 30 minutes ago', 5400)
 
173
        self.assertFormatedDelta('2 hours, 30 minutes ago', 9017)
 
174
        self.assertFormatedDelta('10 hours, 0 minutes ago', 36000)
 
175
        self.assertFormatedDelta('24 hours, 0 minutes ago', 86400)
 
176
        self.assertFormatedDelta('35 hours, 59 minutes ago', 129599)
 
177
        self.assertFormatedDelta('36 hours, 0 minutes ago', 129600)
 
178
        self.assertFormatedDelta('36 hours, 0 minutes ago', 129601)
 
179
        self.assertFormatedDelta('36 hours, 1 minute ago', 129660)
 
180
        self.assertFormatedDelta('36 hours, 1 minute ago', 129661)
 
181
        self.assertFormatedDelta('84 hours, 10 minutes ago', 303002)
 
182
 
 
183
        # We handle when time steps the wrong direction because computers
 
184
        # don't have synchronized clocks.
 
185
        self.assertFormatedDelta('84 hours, 10 minutes in the future', -303002)
 
186
        self.assertFormatedDelta('1 second in the future', -1)
 
187
        self.assertFormatedDelta('2 seconds in the future', -2)
 
188
 
153
189
 
154
190
class TestSafeUnicode(TestCase):
155
191
 
529
565
        # and in the worst case, use bzrlib.user_encoding
530
566
        self.assertEqual('user_encoding', osutils.get_terminal_encoding())
531
567
 
 
568
 
 
569
class TestSetUnsetEnv(TestCase):
 
570
    """Test updating the environment"""
 
571
 
 
572
    def setUp(self):
 
573
        super(TestSetUnsetEnv, self).setUp()
 
574
 
 
575
        self.assertEqual(None, os.environ.get('BZR_TEST_ENV_VAR'),
 
576
                         'Environment was not cleaned up properly.'
 
577
                         ' Variable BZR_TEST_ENV_VAR should not exist.')
 
578
        def cleanup():
 
579
            if 'BZR_TEST_ENV_VAR' in os.environ:
 
580
                del os.environ['BZR_TEST_ENV_VAR']
 
581
 
 
582
        self.addCleanup(cleanup)
 
583
 
 
584
    def test_set(self):
 
585
        """Test that we can set an env variable"""
 
586
        old = osutils.set_or_unset_env('BZR_TEST_ENV_VAR', 'foo')
 
587
        self.assertEqual(None, old)
 
588
        self.assertEqual('foo', os.environ.get('BZR_TEST_ENV_VAR'))
 
589
 
 
590
    def test_double_set(self):
 
591
        """Test that we get the old value out"""
 
592
        osutils.set_or_unset_env('BZR_TEST_ENV_VAR', 'foo')
 
593
        old = osutils.set_or_unset_env('BZR_TEST_ENV_VAR', 'bar')
 
594
        self.assertEqual('foo', old)
 
595
        self.assertEqual('bar', os.environ.get('BZR_TEST_ENV_VAR'))
 
596
 
 
597
    def test_unicode(self):
 
598
        """Environment can only contain plain strings
 
599
        
 
600
        So Unicode strings must be encoded.
 
601
        """
 
602
        # Try a few different characters, to see if we can get
 
603
        # one that will be valid in the user_encoding
 
604
        possible_vals = [u'm\xb5', u'\xe1', u'\u0410']
 
605
        for uni_val in possible_vals:
 
606
            try:
 
607
                env_val = uni_val.encode(bzrlib.user_encoding)
 
608
            except UnicodeEncodeError:
 
609
                # Try a different character
 
610
                pass
 
611
            else:
 
612
                break
 
613
        else:
 
614
            raise TestSkipped('Cannot find a unicode character that works in'
 
615
                              ' encoding %s' % (bzrlib.user_encoding,))
 
616
 
 
617
        old = osutils.set_or_unset_env('BZR_TEST_ENV_VAR', uni_val)
 
618
        self.assertEqual(env_val, os.environ.get('BZR_TEST_ENV_VAR'))
 
619
 
 
620
    def test_unset(self):
 
621
        """Test that passing None will remove the env var"""
 
622
        osutils.set_or_unset_env('BZR_TEST_ENV_VAR', 'foo')
 
623
        old = osutils.set_or_unset_env('BZR_TEST_ENV_VAR', None)
 
624
        self.assertEqual('foo', old)
 
625
        self.assertEqual(None, os.environ.get('BZR_TEST_ENV_VAR'))
 
626
        self.failIf('BZR_TEST_ENV_VAR' in os.environ)
 
627