Browse Source

SERIALPORT env variable overrides default port from system

kmpm 8 years ago
parent
commit
531a1c936c
3 changed files with 17 additions and 9 deletions
  1. 1 0
      README.md
  2. 6 2
      lib/utils.py
  3. 10 7
      tests/misc.py

+ 1 - 0
README.md

@@ -59,6 +59,7 @@ Usage (part of it)
 * --baud are set at a default of 9600
 * --port is by default __/dev/ttyUSB0__,
   __/dev/tty.SLAB_USBtoUART__ if on Mac and __COM1__ on Windows
+* the environment variable __SERIALPORT__ will override any default port
 
 ###Upload
 Uploading a number of files.

+ 6 - 2
lib/utils.py

@@ -3,11 +3,15 @@
 # Copyright (C) 2015-2016 Peter Magnusson <peter@birchroad.net>
 
 from platform import system
+from os import environ
+
+__all__ = ['default_port', 'system']
 
 def default_port(sysname = system()):
-    """This returns the default port used for different systems"""
-    return {
+    """This returns the default port used for different systems if SERIALPORT env variable is not set"""
+    system_default =  {
         'Windows': 'COM1',
         'Darwin': '/dev/tty.SLAB_USBtoUART'
     }.get(sysname, '/dev/ttyUSB0')
+    return environ.get('SERIALPORT', system_default)
 

+ 10 - 7
tests/misc.py

@@ -3,16 +3,19 @@
 import unittest
 from lib.utils import default_port
 from lib import __version__
+import os
 
 class MiscTestCase(unittest.TestCase):
 
     def test_version(self):
-        self.assertEqual(__version__, '0.2.0')
+        self.assertEqual(__version__, '0.2.1')
 
     def test_default_port(self):
-        #Test as if it were given system
-        self.assertEqual(default_port('Linux'), '/dev/ttyUSB0')
-        self.assertEqual(default_port('Windows'), 'COM1')
-        self.assertEqual(default_port('Darwin'), '/dev/tty.SLAB_USBtoUART')
-
-        self.assertTrue(len(default_port()) >= 3)
+        if os.environ.get('SERIALPORT', 'none') != 'none':
+            #SERIALPORT should override any system defaults
+            self.assertEqual(default_port(), os.environ['SERIALPORT'])
+        else:
+            #Test as if it were given system
+            self.assertEqual(default_port('Linux'), '/dev/ttyUSB0')
+            self.assertEqual(default_port('Windows'), 'COM1')
+            self.assertEqual(default_port('Darwin'), '/dev/tty.SLAB_USBtoUART')