[VOL-2241] Python 3 refactor of pyvoltha
Majority of work was manual fixes to bytes and strings types, which are
different in py3, but same in py2. As the OMCI library does a lot of
these comparisons and scapy then renders packets, this was frequently
nontrival to debug.
Also:
- Removed grpc dep which wasn't being used, not py3 compatible
- s/Alarms/Events/ to work with protobuf changes per VOL-2224
- Automatic fixes via modernize tooling
- Removed unused OrderedWeakValueDict code
- Removed frameio send_frame specific to Darwin (MacOS), which had no
corresponding linux code
- Use library functions for hex and unicode conversions
- Various other cleanups and fixes (EOL whitespace, etc.)
Also more (Matt):
- handle stringify better, check if already string
- use binary string for binary work
- import new thread paths
- update requirements.txt for newer libraries needed with newer python
- return proper tuple for unpacking
- bytes string formatting fixed
- fix mock task unit test
Even more (Zack):
- Python 2/3 compat for _thread by using 'future'
- Bump version to 2.3.0
Change-Id: I53b596d374a944bfb80d0b112f21bcc1f8bcee6e
diff --git a/test/unit/extensions/omci/mock/mock_olt_handler.py b/test/unit/extensions/omci/mock/mock_olt_handler.py
index 142dbd8..9a51082 100644
--- a/test/unit/extensions/omci/mock/mock_olt_handler.py
+++ b/test/unit/extensions/omci/mock/mock_olt_handler.py
@@ -14,9 +14,11 @@
# limitations under the License.
#
+from __future__ import absolute_import
import sys
-from mock_adapter_agent import MockDevice
+from .mock_adapter_agent import MockDevice
from nose.twistedtools import reactor
+from six.moves import range
class MockOltHandler(MockDevice):
@@ -45,7 +47,7 @@
self.enabled = True # OLT is enabled/active
self.activated_onus = set() # Activated ONU serial numbers
- self.enabled_pons = range(0, 16) # Enabled PONs
+ self.enabled_pons = list(range(0, 16)) # Enabled PONs
self.max_tx = sys.maxint # Fail after this many tx requests
self.latency = 0.0 # OMCI response latency (keep small)
@@ -101,7 +103,7 @@
def _deliver_proxy_message(self, proxy_address, response):
from common.frameio.frameio import hexify
self._adapter_agent.receive_proxied_message(proxy_address,
- hexify(str(response)))
+ hexify(response))
def receive_proxied_message(self, _, __):
assert False, 'This is never called on the OLT side of proxy messaging'