summaryrefslogtreecommitdiff
path: root/ick2/workspace_tests.py
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2018-03-30 11:20:06 +0300
committerLars Wirzenius <liw@liw.fi>2018-03-30 11:52:19 +0300
commit114a276e06aeb19cd9150175efa53d7267b6a6ff (patch)
treeb719c981915cd62224db6901116f957df99f2fe6 /ick2/workspace_tests.py
parentf3506ce57ae144f1a6447940f3eb0285767d16dd (diff)
downloadick2-114a276e06aeb19cd9150175efa53d7267b6a6ff.tar.gz
Add: classes for managing workspaces
Diffstat (limited to 'ick2/workspace_tests.py')
-rw-r--r--ick2/workspace_tests.py68
1 files changed, 68 insertions, 0 deletions
diff --git a/ick2/workspace_tests.py b/ick2/workspace_tests.py
new file mode 100644
index 0000000..fa5e788
--- /dev/null
+++ b/ick2/workspace_tests.py
@@ -0,0 +1,68 @@
+# Copyright (C) 2018 Lars Wirzenius
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+
+import os
+import shutil
+import tempfile
+import unittest
+
+
+import ick2
+
+
+class WorkspaceAreaTests(unittest.TestCase):
+
+ def setUp(self):
+ self.tempdir = tempfile.mkdtemp()
+ self.area = ick2.WorkspaceArea()
+ self.area.set_root(self.tempdir)
+
+ def tearDown(self):
+ shutil.rmtree(self.tempdir)
+
+ def test_sets_root(self):
+ self.assertEqual(self.area.get_root(), self.tempdir)
+
+ def test_clears_workspace_area(self):
+ name = 'foo-project'
+ ws = self.area.create_workspace(name)
+ self.area.clear()
+ self.assertEqual(os.listdir(self.tempdir), [])
+
+ def test_creates_workspace(self):
+ name = 'foo-project'
+ ws = self.area.create_workspace(name)
+ self.assertTrue(isinstance(ws, ick2.Workspace))
+ dirname = os.path.join(self.tempdir, name)
+ self.assertEqual(ws.get_directory(), dirname)
+ self.assertTrue(os.path.isdir(dirname))
+
+ def test_creates_workspace_twice(self):
+ name = 'foo-project'
+ ws0 = self.area.create_workspace(name)
+ ws = self.area.create_workspace(name)
+ self.assertTrue(isinstance(ws, ick2.Workspace))
+ dirname = os.path.join(self.tempdir, name)
+ self.assertEqual(ws.get_directory(), dirname)
+ self.assertTrue(os.path.isdir(dirname))
+
+ def test_destroys_nonempty_workspace(self):
+ name = 'foo-project'
+ ws = self.area.create_workspace(name)
+ dirname = ws.get_directory()
+ with open(os.path.join(dirname, 'file.txt'), 'w') as f:
+ f.write('hello, world')
+ ws.destroy()
+ self.assertFalse(os.path.exists(dirname))