OpTable loading from lxml object
Loading an OpTable via passed in lxml object is missing support.

diff --git a/lib/jnpr/junos/factory/optable.py b/lib/jnpr/junos/factory/optable.py
index f7341d21..40867b94 100644
--- a/lib/jnpr/junos/factory/optable.py
+++ b/lib/jnpr/junos/factory/optable.py
@@ -47,6 +47,9 @@ class OpTable(Table):
             self.xml = etree.parse(self._path).getroot()
             return self
 
+        if self.xml is not None:
+            return self
+
         argkey = vargs[0] if len(vargs) else None
 
         rpc_args = {}                     # create empty <dict>
diff --git a/tests/unit/factory/test_optable.py b/tests/unit/factory/test_optable.py
index 9d7118de..a74c1387 100644
--- a/tests/unit/factory/test_optable.py
+++ b/tests/unit/factory/test_optable.py
@@ -38,12 +38,20 @@ class TestFactoryOpTable(unittest.TestCase):
         self.ppt.get('ge-0/0/0')
         self.assertEqual(self.ppt.GET_KEY, 'interface_name')
 
-    def test_optable_local(self):
+    def test_optable_path(self):
         fname = 'local-get-interface-information.xml'
-        self.ppt._path = os.path.join(os.path.dirname(__file__),
-                                      'rpc-reply', fname)
-        self.ppt.get()
-        self.assertEqual(len(self.ppt), 2)
+        path = os.path.join(os.path.dirname(__file__),
+                            'rpc-reply', fname)
+        lppt = PhyPortStatsTable(path=path)
+        lppt.get()
+        self.assertEqual(len(lppt), 2)
+
+    def test_optable_xml(self):
+        fname = 'get-interface-information.xml'
+        xml = self._read_file(fname)
+        lppt = PhyPortStatsTable(xml=xml)
+        lppt.get()
+        self.assertEqual(len(lppt), 2)
 
     @patch('jnpr.junos.Device.execute')
     def test_optable_view_get(self, mock_execute):
['tests/unit/factory/test_optable.py', 'lib/jnpr/junos/factory/optable.py']