1
0
mirror of https://github.com/projectatomic/atomic.git synced 2026-02-05 18:45:01 +01:00
Files
atomic/tests/unit/test_mount.py
Tomas Tomecek 805b955ed5 mount: create context manager for {Docker,OSTree}Mount
Signed-off-by: Tomas Tomecek <ttomecek@redhat.com>

Closes: #976
Approved by: rhatdan
2017-04-24 20:29:15 +00:00

57 lines
2.4 KiB
Python

import unittest
from Atomic import mount
class TestAtomicMount(unittest.TestCase):
def test_mount_excepts_unknown_backend(self):
def mock_info():
return {'Driver': 'foobardriver'}
with mount.DockerMount('foobar') as m:
m._info = mock_info # pylint: disable=protected-access
exp = 'Atomic mount is not supported on the foobardriver docker ' \
'storage backend.'
# assertRaisesRegexp was deprecated by assertRaisesRegex.
# If it is present, prefer assertRaisesRegex.
if hasattr(self, 'assertRaisesRegex'):
assertRaisesRegex = getattr(self, "assertRaisesRegex")
else:
assertRaisesRegex = getattr(self, "assertRaisesRegexp")
assertRaisesRegex(mount.MountError, exp, m.mount, 'fedora:22')
assertRaisesRegex(mount.MountError, exp, m.unmount)
def test_dockermount_context_manager(self):
def mock_info():
return {'Driver': 'foobardriver'}
dm = mount.DockerMount('foobar')
dm._info = mock_info # pylint: disable=protected-access
message = 'Atomic mount is not supported on the foobardriver docker ' \
'storage backend.'
with self.assertRaises(mount.MountError) as cm:
with mount.MountContextManager(dm, 'fedora:25'):
pass
self.assertEqual(cm.exception.val, message)
def test_default_options(self):
with mount.DockerMount('foobar') as m:
o = m.default_options([], default_con='foobar_context',
default_opt=['foo', 'bar'])
self.assertEqual(o, ['foo', 'bar', 'context="foobar_context"'])
def test_default_options_override_defaults(self):
with mount.DockerMount('foobar') as m:
o = m.default_options(['override', 'opts'],
default_con='foobar_context',
default_opt=['will not appear'])
self.assertEqual(o, ['override', 'opts', 'context="foobar_context"'])
def test_default_options_no_surplus_context(self):
with mount.DockerMount('foobar') as m:
o = m.default_options(['ro', 'context="foobang_context"'],
default_con='foobar_context')
self.assertEqual(o, ['ro', 'context="foobang_context"'])
if __name__ == '__main__':
unittest.main()