mirror of
https://github.com/b-ryan/powerline-shell.git
synced 2026-09-10 07:26:28 -04:00
Use a contextmanager for changing directory
sh.cd does not work anymore, as it does not persist between lines. This is cleaner, as we now always know what directory we're in.
This commit is contained in:
parent
8a60dd6441
commit
42edc0c298
|
|
@ -3,6 +3,9 @@ import mock
|
|||
import os
|
||||
import tempfile
|
||||
import shutil
|
||||
|
||||
import sh
|
||||
|
||||
import powerline_shell as p
|
||||
|
||||
|
||||
|
|
@ -33,9 +36,9 @@ class CwdTest(unittest.TestCase):
|
|||
@mock.patch('powerline_shell.warn')
|
||||
def test_falls_back_to_getcwd(self, warn, getenv):
|
||||
getenv.return_value = None
|
||||
os.chdir(self.dirname)
|
||||
self.assertEqual(p.get_valid_cwd(), self.dirname)
|
||||
self.assertEqual(warn.call_count, 0)
|
||||
with sh.pushd(self.dirname):
|
||||
self.assertEqual(p.get_valid_cwd(), self.dirname)
|
||||
self.assertEqual(warn.call_count, 0)
|
||||
|
||||
@mock.patch('os.getenv')
|
||||
@mock.patch('powerline_shell.warn')
|
||||
|
|
@ -44,10 +47,10 @@ class CwdTest(unittest.TestCase):
|
|||
getenv.return_value = None
|
||||
|
||||
os.mkdir(subdir)
|
||||
os.chdir(subdir)
|
||||
os.rmdir(subdir)
|
||||
with sh.pushd(subdir):
|
||||
os.rmdir(subdir)
|
||||
|
||||
with self.assertRaises(SystemExit) as e:
|
||||
p.get_valid_cwd()
|
||||
with self.assertRaises(SystemExit) as e:
|
||||
p.get_valid_cwd()
|
||||
|
||||
self.assertEqual(warn.call_count, 1)
|
||||
self.assertEqual(warn.call_count, 1)
|
||||
|
|
|
|||
|
|
@ -1,4 +1,6 @@
|
|||
import unittest
|
||||
from contextlib import ExitStack
|
||||
|
||||
import mock
|
||||
import tempfile
|
||||
import shutil
|
||||
|
|
@ -28,14 +30,20 @@ class BzrTest(unittest.TestCase):
|
|||
})
|
||||
|
||||
self.dirname = tempfile.mkdtemp()
|
||||
sh.cd(self.dirname)
|
||||
sh.bzr("init-repo", ".")
|
||||
sh.mkdir("trunk")
|
||||
sh.cd("trunk")
|
||||
sh.bzr("init")
|
||||
with sh.pushd(self.dirname):
|
||||
sh.bzr("init-repo", ".")
|
||||
sh.mkdir("trunk")
|
||||
|
||||
with sh.pushd(self.dirname + "/trunk"):
|
||||
sh.bzr("init")
|
||||
sh.bzr("whoami", "--branch", '"Example <example@example.com>"')
|
||||
|
||||
self.segment = bzr.Segment(self.powerline, {})
|
||||
|
||||
with ExitStack() as stack:
|
||||
self._resource = stack.enter_context(sh.pushd(self.dirname + "/trunk"))
|
||||
self.addCleanup(stack.pop_all().close)
|
||||
|
||||
def tearDown(self):
|
||||
shutil.rmtree(self.dirname)
|
||||
|
||||
|
|
@ -45,9 +53,8 @@ class BzrTest(unittest.TestCase):
|
|||
sh.bzr("commit", "-m", "add file " + filename)
|
||||
|
||||
def _checkout_new_branch(self, branch):
|
||||
sh.cd("..")
|
||||
sh.bzr("branch", "trunk", branch)
|
||||
sh.cd(branch)
|
||||
with sh.pushd(self.dirname):
|
||||
sh.bzr("branch", "trunk", branch)
|
||||
|
||||
@mock.patch("powerline_shell.utils.get_PATH")
|
||||
def test_bzr_not_installed(self, get_PATH):
|
||||
|
|
@ -71,12 +78,14 @@ class BzrTest(unittest.TestCase):
|
|||
def test_different_branch(self):
|
||||
self._add_and_commit("foo")
|
||||
self._checkout_new_branch("bar")
|
||||
self.segment.start()
|
||||
self.segment.add_to_powerline()
|
||||
self.assertEqual(self.powerline.append.call_args[0][0], " bar ")
|
||||
with sh.pushd(self.dirname + "/bar"):
|
||||
self.segment.start()
|
||||
self.segment.add_to_powerline()
|
||||
self.assertEqual(self.powerline.append.call_args[0][0], " bar ")
|
||||
|
||||
@mock.patch('powerline_shell.segments.bzr._get_bzr_status')
|
||||
def test_all(self, check_output):
|
||||
for stdout, result in test_cases:
|
||||
stats = bzr.parse_bzr_stats(stdout)
|
||||
self.assertEquals(result, stats)
|
||||
with sh.pushd(self.dirname + "/trunk"):
|
||||
stats = bzr.parse_bzr_stats(stdout)
|
||||
self.assertEqual(result, stats)
|
||||
|
|
|
|||
|
|
@ -1,4 +1,6 @@
|
|||
import unittest
|
||||
from contextlib import ExitStack
|
||||
|
||||
import mock
|
||||
import tempfile
|
||||
import shutil
|
||||
|
|
@ -24,12 +26,16 @@ class FossilTest(unittest.TestCase):
|
|||
})
|
||||
|
||||
self.dirname = tempfile.mkdtemp()
|
||||
sh.cd(self.dirname)
|
||||
sh.fossil("init", "test.fossil")
|
||||
sh.fossil("open", "test.fossil")
|
||||
with sh.pushd(self.dirname):
|
||||
sh.fossil("init", "test.fossil")
|
||||
sh.fossil("open", "test.fossil")
|
||||
|
||||
self.segment = fossil.Segment(self.powerline, {})
|
||||
|
||||
with ExitStack() as stack:
|
||||
self._resource = stack.enter_context(sh.pushd(self.dirname))
|
||||
self.addCleanup(stack.pop_all().close)
|
||||
|
||||
def tearDown(self):
|
||||
shutil.rmtree(self.dirname)
|
||||
|
||||
|
|
@ -72,4 +78,4 @@ class FossilTest(unittest.TestCase):
|
|||
def test_all(self, check_output):
|
||||
for stdout, result in test_cases.items():
|
||||
stats = fossil.parse_fossil_stats([stdout])
|
||||
self.assertEquals(result, stats)
|
||||
self.assertEqual(result, stats)
|
||||
|
|
|
|||
|
|
@ -1,4 +1,6 @@
|
|||
import unittest
|
||||
from contextlib import ExitStack
|
||||
|
||||
import mock
|
||||
import tempfile
|
||||
import shutil
|
||||
|
|
@ -12,11 +14,15 @@ class GitStashTest(unittest.TestCase):
|
|||
def setUp(self):
|
||||
self.powerline = mock.MagicMock()
|
||||
self.dirname = tempfile.mkdtemp()
|
||||
sh.cd(self.dirname)
|
||||
sh.git("init", ".")
|
||||
with sh.pushd(self.dirname):
|
||||
sh.git("init", ".")
|
||||
|
||||
self.segment = git_stash.Segment(self.powerline, {})
|
||||
|
||||
with ExitStack() as stack:
|
||||
self._resource = stack.enter_context(sh.pushd(self.dirname))
|
||||
self.addCleanup(stack.pop_all().close)
|
||||
|
||||
def tearDown(self):
|
||||
shutil.rmtree(self.dirname)
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,6 @@
|
|||
import unittest
|
||||
from contextlib import ExitStack
|
||||
|
||||
import mock
|
||||
import tempfile
|
||||
import shutil
|
||||
|
|
@ -16,11 +18,16 @@ class GitTest(unittest.TestCase):
|
|||
})
|
||||
|
||||
self.dirname = tempfile.mkdtemp()
|
||||
sh.cd(self.dirname)
|
||||
sh.git("init", ".")
|
||||
with sh.pushd(self.dirname):
|
||||
sh.git("init", ".")
|
||||
|
||||
self.segment = git.Segment(self.powerline, {})
|
||||
|
||||
with ExitStack() as stack:
|
||||
self._resource = stack.enter_context(sh.pushd(self.dirname))
|
||||
self.addCleanup(stack.pop_all().close)
|
||||
|
||||
|
||||
def tearDown(self):
|
||||
shutil.rmtree(self.dirname)
|
||||
|
||||
|
|
@ -57,7 +64,7 @@ class GitTest(unittest.TestCase):
|
|||
self._add_and_commit("foo")
|
||||
self.segment.start()
|
||||
self.segment.add_to_powerline()
|
||||
self.assertEqual(self.powerline.append.call_args[0][0], ' master ')
|
||||
self.assertIn(self.powerline.append.call_args[0][0], [' master ', ' main '])
|
||||
|
||||
def test_different_branch(self):
|
||||
self._add_and_commit("foo")
|
||||
|
|
|
|||
|
|
@ -1,4 +1,6 @@
|
|||
import unittest
|
||||
from contextlib import ExitStack
|
||||
|
||||
import mock
|
||||
import tempfile
|
||||
import shutil
|
||||
|
|
@ -26,11 +28,15 @@ class HgTest(unittest.TestCase):
|
|||
})
|
||||
|
||||
self.dirname = tempfile.mkdtemp()
|
||||
sh.cd(self.dirname)
|
||||
sh.hg("init", ".")
|
||||
with sh.pushd(self.dirname):
|
||||
sh.hg("init", ".")
|
||||
|
||||
self.segment = hg.Segment(self.powerline, {})
|
||||
|
||||
with ExitStack() as stack:
|
||||
self._resource = stack.enter_context(sh.pushd(self.dirname))
|
||||
self.addCleanup(stack.pop_all().close)
|
||||
|
||||
def tearDown(self):
|
||||
shutil.rmtree(self.dirname)
|
||||
|
||||
|
|
@ -72,4 +78,4 @@ class HgTest(unittest.TestCase):
|
|||
def test_all(self, check_output):
|
||||
for stdout, result in test_cases.items():
|
||||
stats = hg.parse_hg_stats([stdout])
|
||||
self.assertEquals(result, stats)
|
||||
self.assertEqual(result, stats)
|
||||
|
|
|
|||
|
|
@ -16,8 +16,8 @@ class SvnTest(unittest.TestCase):
|
|||
})
|
||||
|
||||
self.dirname = tempfile.mkdtemp()
|
||||
sh.cd(self.dirname)
|
||||
# sh.svn("init", ".")
|
||||
with sh.pushd(self.dirname):
|
||||
sh.svn("init", ".")
|
||||
|
||||
self.segment = svn.Segment(self.powerline, {})
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue