Ejemplo n.º 1
0
    def test_partial_symbol_references(self, string, link):
        duplicate_of = {
            'tf.matmul': 'tf.linalg.matmul',
            'tf.layers.Conv2d': 'tf.keras.layers.Conv2D',
        }

        is_fragment = {
            'tf.keras.Model.fit': True,
            'tf.concat': False,
            'tf.keras.layers.Conv2D': False,
            'tf.linalg.matmul': False,
            'tf.compat.v1.math.deprecated': False,
            'tf.compat.v1.linalg.matmul': False,
            'tf.contrib.y.z': False,
        }

        py_module_names = ['tf']

        resolver = parser.ReferenceResolver(duplicate_of, is_fragment,
                                            py_module_names)
        input_string = string.join('``')
        ref_string = resolver.replace_references(input_string, '..')

        if link is None:
            expected = input_string
        else:
            expected = self.REF_TEMPLATE.format(link=link, text=string)

        self.assertEqual(expected, ref_string)
Ejemplo n.º 2
0
  def test_duplicate_fragment(self):
    duplicate_of = {
        'tf.Class2.method': 'tf.Class1.method',
        'tf.sub.Class2.method': 'tf.Class1.method',
        'tf.sub.Class2': 'tf.Class2'
    }
    is_fragment = {
        'tf.Class1.method': True,
        'tf.Class2.method': True,
        'tf.sub.Class2.method': True,
        'tf.Class1': False,
        'tf.Class2': False,
        'tf.sub.Class2': False
    }
    py_module_names = ['tf']

    reference_resolver = parser.ReferenceResolver(duplicate_of, is_fragment,
                                                  py_module_names)

    # Method references point to the method, in the canonical class alias.
    result = reference_resolver.reference_to_url('tf.Class1.method', '')
    self.assertEqual('tf/Class1.md#method', result)
    result = reference_resolver.reference_to_url('tf.Class2.method', '')
    self.assertEqual('tf/Class2.md#method', result)
    result = reference_resolver.reference_to_url('tf.sub.Class2.method', '')
    self.assertEqual('tf/Class2.md#method', result)

    # Class references point to the canonical class alias
    result = reference_resolver.reference_to_url('tf.Class1', '')
    self.assertEqual('tf/Class1.md', result)
    result = reference_resolver.reference_to_url('tf.Class2', '')
    self.assertEqual('tf/Class2.md', result)
    result = reference_resolver.reference_to_url('tf.sub.Class2', '')
    self.assertEqual('tf/Class2.md', result)
Ejemplo n.º 3
0
  def testSaveReferenceResolver(self):
    you_cant_serialize_this = object()

    duplicate_of = {'AClass': ['AClass2']}
    doc_index = {'doc': you_cant_serialize_this}
    is_fragment = {
        'tf': False,
        'tf.VERSION': True,
        'tf.AClass': False,
        'tf.AClass.method': True,
        'tf.AClass2': False,
        'tf.function': False
    }
    py_module_names = ['tf', 'tfdbg']

    resolver = parser.ReferenceResolver(duplicate_of, doc_index, is_fragment,
                                        py_module_names)

    outdir = self.workdir

    filepath = os.path.join(outdir, 'resolver.json')

    resolver.to_json_file(filepath)
    resolver2 = parser.ReferenceResolver.from_json_file(filepath, doc_index)

    # There are no __slots__, so all fields are visible in __dict__.
    self.assertEqual(resolver.__dict__, resolver2.__dict__)
Ejemplo n.º 4
0
 def setUp(self):
     super().setUp()
     self.known_object = object()
     reference_resolver = parser.ReferenceResolver(duplicate_of={},
                                                   is_fragment={},
                                                   py_module_names=[''])
     self.parser_config = parser.ParserConfig(
         reference_resolver=reference_resolver,
         duplicates={},
         duplicate_of={},
         tree={},
         index={},
         reverse_index={id(self.known_object): 'location.of.object.in.api'},
         base_dir='/',
         code_url_prefix='/')
Ejemplo n.º 5
0
 def setUp(self):
   super().setUp()
   self.known_object = object()
   reference_resolver = parser.ReferenceResolver(
       duplicate_of={},
       is_fragment={'tfdocs.api_generator.parser.extract_decorators': False},
       py_module_names=[])
   self.parser_config = parser.ParserConfig(
       reference_resolver=reference_resolver,
       duplicates={},
       duplicate_of={},
       tree={},
       index={},
       reverse_index={
           id(self.known_object):
               'location.of.object.in.api',
           id(parser.extract_decorators):
               'tfdocs.api_generator.parser.extract_decorators',
       },
       base_dir='/',
       code_url_prefix='/')
Ejemplo n.º 6
0
  def test_partial_symbol_references(self, string, link):
    duplicate_of = {
        'tf.matmul': 'tf.linalg.matmul',
    }

    is_fragment = {
        'tf.keras.Model.fit': True,
        'tf.concat': False,
        'tf.keras.layers.Conv2D': False,
        'tf.linalg.matmul': False
    }

    py_module_names = ['tf']

    resolver = parser.ReferenceResolver(duplicate_of, is_fragment,
                                        py_module_names)

    ref_string = resolver.replace_references(string.join('``'), '..')

    expected = self.REF_TEMPLATE.format(link=link, text=string)

    self.assertEqual(expected, ref_string)