import unittest
import time
from Arduino import Arduino

"""
A collection of some basic tests for the Arduino library.

Extensive coverage is a bit difficult, since a positive test involves actually
connecting and issuing commands to a live Arduino, hosting any hardware
required to test a particular function. But a core of basic communication tests
should at least be maintained here.
"""


class TestBasics(unittest.TestCase):
    _ = raw_input('Plug in Arduino board w/LED at pin 13, reset, then press enter')
    board = Arduino('9600')

    def test_find(self):
        """
        Tests auto-connection/board detection
        """
        self.assertIsNotNone(self.board.port)

if __name__ == '__main__':
    unittest.main()

import unittest
import time

"""
A collection of some basic tests for the Arduino library.

Extensive coverage is a bit difficult, since a positive test involves actually
connecting and issuing commands to a live Arduino, hosting any hardware
required to test a particular function. But a core of basic communication tests
should at least be maintained here.
"""


class TestBasics(unittest.TestCase):

    def test_find(self):
        """ Tests auto-connection/board detection. """
        raw_input(
            'Plug in Arduino board w/LED at pin 13, reset, then press enter')
        from Arduino import Arduino
        board = None
        try:
            # This will trigger automatic port resolution.
            board = Arduino(9600)
        finally:
            if board:
                board.close()

    def test_open(self):
        """ Tests connecting to an explicit port. """
        port = raw_input(
            'Plug in Arduino board w/LED at pin 13, reset.\n'\
            'Enter the port where the Arduino is connected, then press enter:')
        from Arduino import Arduino
        board = None
        try:
            board = Arduino(9600, port=port)
        finally:
            if board:
                board.close()

if __name__ == '__main__':
    unittest.main()

Add another test to explicitly connect to a serial port.
Add another test to explicitly connect to a serial port.

  import unittest
  import time
- from Arduino import Arduino
  
  """
  A collection of some basic tests for the Arduino library.
  
  Extensive coverage is a bit difficult, since a positive test involves actually
  connecting and issuing commands to a live Arduino, hosting any hardware
  required to test a particular function. But a core of basic communication tests
  should at least be maintained here.
  """
  
  
  class TestBasics(unittest.TestCase):
-     _ = raw_input('Plug in Arduino board w/LED at pin 13, reset, then press enter')
-     board = Arduino('9600')
  
      def test_find(self):
-         """
-         Tests auto-connection/board detection
+         """ Tests auto-connection/board detection. """
-         """
-         self.assertIsNotNone(self.board.port)
+         raw_input(
+             'Plug in Arduino board w/LED at pin 13, reset, then press enter')
+         from Arduino import Arduino
+         board = None
+         try:
+             # This will trigger automatic port resolution.
+             board = Arduino(9600)
+         finally:
+             if board:
+                 board.close()
+ 
+     def test_open(self):
+         """ Tests connecting to an explicit port. """
+         port = raw_input(
+             'Plug in Arduino board w/LED at pin 13, reset.\n'\
+             'Enter the port where the Arduino is connected, then press enter:')
+         from Arduino import Arduino
+         board = None
+         try:
+             board = Arduino(9600, port=port)
+         finally:
+             if board:
+                 board.close()
  
  if __name__ == '__main__':
      unittest.main()
  
Add another test to explicitly connect to a serial port.
## Code Before:
import unittest
import time
from Arduino import Arduino

"""
A collection of some basic tests for the Arduino library.

Extensive coverage is a bit difficult, since a positive test involves actually
connecting and issuing commands to a live Arduino, hosting any hardware
required to test a particular function. But a core of basic communication tests
should at least be maintained here.
"""


class TestBasics(unittest.TestCase):
    _ = raw_input('Plug in Arduino board w/LED at pin 13, reset, then press enter')
    board = Arduino('9600')

    def test_find(self):
        """
        Tests auto-connection/board detection
        """
        self.assertIsNotNone(self.board.port)

if __name__ == '__main__':
    unittest.main()

## Instruction:
Add another test to explicitly connect to a serial port.
## Code After:
import unittest
import time

"""
A collection of some basic tests for the Arduino library.

Extensive coverage is a bit difficult, since a positive test involves actually
connecting and issuing commands to a live Arduino, hosting any hardware
required to test a particular function. But a core of basic communication tests
should at least be maintained here.
"""


class TestBasics(unittest.TestCase):

    def test_find(self):
        """ Tests auto-connection/board detection. """
        raw_input(
            'Plug in Arduino board w/LED at pin 13, reset, then press enter')
        from Arduino import Arduino
        board = None
        try:
            # This will trigger automatic port resolution.
            board = Arduino(9600)
        finally:
            if board:
                board.close()

    def test_open(self):
        """ Tests connecting to an explicit port. """
        port = raw_input(
            'Plug in Arduino board w/LED at pin 13, reset.\n'\
            'Enter the port where the Arduino is connected, then press enter:')
        from Arduino import Arduino
        board = None
        try:
            board = Arduino(9600, port=port)
        finally:
            if board:
                board.close()

if __name__ == '__main__':
    unittest.main()
