blob: 1baff7d1d1550568ea3acd04bffeb42fb57abb00 [file] [log] [blame]
Tamir Duberstein9d9d0b72015-04-11 20:23:45 -07001#! /usr/bin/env python
xiaofeng@google.comb55a20f2012-09-22 02:40:50 +00002#
3# Protocol Buffers - Google's data interchange format
4# Copyright 2008 Google Inc. All rights reserved.
Feng Xiaoe4288622014-10-01 16:26:23 -07005# https://developers.google.com/protocol-buffers/
xiaofeng@google.comb55a20f2012-09-22 02:40:50 +00006#
7# Redistribution and use in source and binary forms, with or without
8# modification, are permitted provided that the following conditions are
9# met:
10#
11# * Redistributions of source code must retain the above copyright
12# notice, this list of conditions and the following disclaimer.
13# * Redistributions in binary form must reproduce the above
14# copyright notice, this list of conditions and the following disclaimer
15# in the documentation and/or other materials provided with the
16# distribution.
17# * Neither the name of Google Inc. nor the names of its
18# contributors may be used to endorse or promote products derived from
19# this software without specific prior written permission.
20#
21# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
24# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
25# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
26# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
27# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
28# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
29# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32
33"""Tests for google.protobuf.descriptor_database."""
34
35__author__ = 'matthewtoia@google.com (Matt Toia)'
36
Dan O'Reilly2621c8a2015-08-14 22:54:53 -040037try:
38 import unittest2 as unittest
39except ImportError:
40 import unittest
xiaofeng@google.comb55a20f2012-09-22 02:40:50 +000041from google.protobuf import descriptor_pb2
42from google.protobuf.internal import factory_test2_pb2
43from google.protobuf import descriptor_database
44
45
Tres Seaver7ee25832015-01-13 14:47:32 -050046class DescriptorDatabaseTest(unittest.TestCase):
xiaofeng@google.comb55a20f2012-09-22 02:40:50 +000047
48 def testAdd(self):
49 db = descriptor_database.DescriptorDatabase()
50 file_desc_proto = descriptor_pb2.FileDescriptorProto.FromString(
51 factory_test2_pb2.DESCRIPTOR.serialized_pb)
52 db.Add(file_desc_proto)
53
Tres Seavera2abc942015-01-13 15:47:55 -050054 self.assertEqual(file_desc_proto, db.FindFileByName(
jieluo@google.combde4a322014-08-12 21:10:30 +000055 'google/protobuf/internal/factory_test2.proto'))
Tres Seavera2abc942015-01-13 15:47:55 -050056 self.assertEqual(file_desc_proto, db.FindFileContainingSymbol(
jieluo@google.combde4a322014-08-12 21:10:30 +000057 'google.protobuf.python.internal.Factory2Message'))
Tres Seavera2abc942015-01-13 15:47:55 -050058 self.assertEqual(file_desc_proto, db.FindFileContainingSymbol(
jieluo@google.combde4a322014-08-12 21:10:30 +000059 'google.protobuf.python.internal.Factory2Message.NestedFactory2Message'))
Tres Seavera2abc942015-01-13 15:47:55 -050060 self.assertEqual(file_desc_proto, db.FindFileContainingSymbol(
jieluo@google.combde4a322014-08-12 21:10:30 +000061 'google.protobuf.python.internal.Factory2Enum'))
Tres Seavera2abc942015-01-13 15:47:55 -050062 self.assertEqual(file_desc_proto, db.FindFileContainingSymbol(
jieluo@google.combde4a322014-08-12 21:10:30 +000063 'google.protobuf.python.internal.Factory2Message.NestedFactory2Enum'))
Tres Seavera2abc942015-01-13 15:47:55 -050064 self.assertEqual(file_desc_proto, db.FindFileContainingSymbol(
Feng Xiao6ef984a2014-11-10 17:34:54 -080065 'google.protobuf.python.internal.MessageWithNestedEnumOnly.NestedEnum'))
xiaofeng@google.comb55a20f2012-09-22 02:40:50 +000066
67if __name__ == '__main__':
Tres Seaver7ee25832015-01-13 14:47:32 -050068 unittest.main()