aboutsummaryrefslogtreecommitdiffstats
path: root/machammer
diff options
context:
space:
mode:
authorFilipp Lepalaan <filipp@mac.com>2016-09-26 16:25:03 +0300
committerFilipp Lepalaan <filipp@mac.com>2016-09-26 16:25:03 +0300
commit07dc2598aff11fa3461596ace739f9c6edb3ca3d (patch)
treeea20a8921a6d09ca14c4bbfa8d444bd3f486c620 /machammer
parent712f5bb479b7183a49feb1ee6cf279d1dbd39f6b (diff)
downloadmachammer-07dc2598aff11fa3461596ace739f9c6edb3ca3d.tar.gz
machammer-07dc2598aff11fa3461596ace739f9c6edb3ca3d.tar.bz2
machammer-07dc2598aff11fa3461596ace739f9c6edb3ca3d.zip
Added workaround for EULA-images
Diffstat (limited to 'machammer')
-rw-r--r--machammer/__init__.py2
-rw-r--r--machammer/functions.py11
-rwxr-xr-xmachammer/tests.py74
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()