diff options
author | Filipp Lepalaan <filipp@mac.com> | 2016-09-26 16:25:03 +0300 |
---|---|---|
committer | Filipp Lepalaan <filipp@mac.com> | 2016-09-26 16:25:03 +0300 |
commit | 07dc2598aff11fa3461596ace739f9c6edb3ca3d (patch) | |
tree | ea20a8921a6d09ca14c4bbfa8d444bd3f486c620 /machammer | |
parent | 712f5bb479b7183a49feb1ee6cf279d1dbd39f6b (diff) | |
download | machammer-07dc2598aff11fa3461596ace739f9c6edb3ca3d.tar.gz machammer-07dc2598aff11fa3461596ace739f9c6edb3ca3d.tar.bz2 machammer-07dc2598aff11fa3461596ace739f9c6edb3ca3d.zip |
Added workaround for EULA-images
Diffstat (limited to 'machammer')
-rw-r--r-- | machammer/__init__.py | 2 | ||||
-rw-r--r-- | machammer/functions.py | 11 | ||||
-rwxr-xr-x | machammer/tests.py | 74 |
3 files changed, 10 insertions, 77 deletions
diff --git a/machammer/__init__.py b/machammer/__init__.py index 645ecea..1ab391e 100644 --- a/machammer/__init__.py +++ b/machammer/__init__.py @@ -1,4 +1,4 @@ -__all__ = [''] +__all__ = ['functions', 'printers', 'system_profiler'] __title__ = 'machammer' __author__ = 'Filipp Lepalaan' __version__ = '0.1' diff --git a/machammer/functions.py b/machammer/functions.py index b7f13b1..d797b32 100644 --- a/machammer/functions.py +++ b/machammer/functions.py @@ -161,7 +161,14 @@ def is_desktop(): def mount_image(dmg): """Mount disk image and return path to mountpoint.""" - r = subprocess.check_output(['/usr/bin/hdiutil', 'mount', '-plist', '-nobrowse', dmg]) + p = subprocess.Popen(['/usr/bin/hdiutil', 'mount', '-plist', '-nobrowse', dmg], + stdout=subprocess.PIPE, + stdin=subprocess.PIPE, + stderr=subprocess.PIPE) + r, e = p.communicate(input=b'Q\nY\n') + + if e: + raise Exception(e) try: plist = plistlib.readPlistFromString(r) @@ -172,7 +179,7 @@ def mount_image(dmg): if p and os.path.exists(p): return p - raise ValueError('Failed to mount %s' % dmg) + raise Exception('Failed to mount %s' % dmg) def mount_and_install(dmg, pkg): diff --git a/machammer/tests.py b/machammer/tests.py deleted file mode 100755 index 6e9b28e..0000000 --- a/machammer/tests.py +++ /dev/null @@ -1,74 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -import logging -import subprocess -from unittest import main, skip, TestCase - -import functions as mh -import system_profiler - - -class SystemProfilerTestCase(TestCase): - def testSerialNumber(self): - sn = system_profiler.get('Hardware', 'serial_number') - self.assertTrue(len(sn) > 8) - - def testInvalidType(self): - with self.assertRaises(Exception): - system_profiler.SystemProfile('Whatever') - - def testKeys(self): - self.assertTrue(len(system_profiler.keys()) > 3) - - def testTypes(self): - self.assertIn('Hardware', system_profiler.types()) - - def testOsVersion(self): - """ - Check that the OS version we get from SP is contained - in the output of sw_vers - """ - build = subprocess.check_output(['sw_vers', '-buildVersion']).strip() - software = system_profiler.SystemProfile('Software') - self.assertIn(build, software.os_version) - - def testOsVersionShortcut(self): - build = subprocess.check_output(['sw_vers', '-buildVersion']).strip() - self.assertTrue(build in system_profiler.get('Software', 'os_version')) - - -class AppsTestCase(TestCase): - def setUp(self): - self.profile = system_profiler.SystemProfile('Applications') - - def testFindStickes(self): - results = self.profile.find('_name', 'Stickies') - self.assertTrue(len(results) > 0) - - def testStickiesVersion(self): - results = self.profile.find('_name', 'Stickies') - self.assertEquals(results[0]['version'], '10.0') - - def testFindApplications(self): - results = self.profile.find('path', '/Applications') - self.assertTrue(len(results) > 10) - - -class FunctionsTestCase(TestCase): - def setUp(self): - self.stickes = '/Applications/Stickies.app' - - def test_notification(self): - mh.display_notification('blaaa "lalala"') - - def test_add_login_item(self): - mh.add_login_item(self.stickes) - - def test_remove_login_item(self): - mh.remove_login_item(path=self.stickes) - - -if __name__ == '__main__': - logging.basicConfig(level=logging.DEBUG) - main() |