from __future__ import absolute_import
from __future__ import division
from __future__ import print_function

# make sure we use cpp implementation of protobuf
import os
os.environ["PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION"] = "cpp"

# import cpp extension first
from caffe2.python import core
# then import protobuf
from caffe2.proto import caffe2_pb2, metanet_pb2

import unittest


class TestCrossProtoCalls(unittest.TestCase):
    def testSimple(self):
        net = caffe2_pb2.NetDef()
        meta = metanet_pb2.MetaNetDef()
        # if metanet_pb2 wasn't initialized properly the following fails with a
        # cryptic message: "Parameter to MergeFrom() must be instance of same
        # class: expected caffe2.NetDef got caffe2.NetDef."
        meta.nets.add(key="foo", value=net)
