コード例 #1
0
    def test_remove_hidden_elements(self):
        root = Root()
        version1 = Version()
        version2 = Version()
        category1 = Category("c1")
        category2 = Category("c2")
        method1 = Method()
        method2 = Method()

        root.versions = {"v1": version1, "v2": version2}
        root.categories = {"c1": category1, "c2": category2}

        version1.methods = {"m1": method1, "m2": method2}
        version2.methods = {"m1": method1, "m2": method2}

        method1.category = "c1"
        method2.category = "c2"

        version1.display = False
        category2.display = False

        self.source.remove_hidden_elements(root)

        self.assertEqual(1, len(root.versions))
        self.assertEqual(version2, root.versions["v2"])
        self.assertEqual(1, len(root.versions["v2"].methods))
        self.assertEqual(method1, root.versions["v2"].methods["m1"])
コード例 #2
0
ファイル: test_rootDto.py プロジェクト: bismark1221/apidoc
    def test_hydrate_type__with_known_category(self):

        root = Root()
        version = Version()
        version.name = "v"
        type = Type()
        type.category = "c"
        type.item = ObjectString()

        root.versions = {"v": version}
        version.types = {"m": type}
        version.types = {"m": type}

        category = Category("c")
        category.description = "d"

        root.categories = {"c": category}

        root_dto = RootDto()

        hydrator = Hydrator(version, {"v": version}, [])

        hydrator.hydrate_type(root_dto, root, type)

        self.assertEqual("d", root_dto.type_categories[0].description)
コード例 #3
0
    def test_category_compare__with_order(self):
        category1 = CategoryDto(Category("c"))
        category2 = CategoryDto(Category("c"))
        category1.order = 1
        category2.order = 2

        self.assertEqual(category1, sorted([category2, category1])[0])
コード例 #4
0
ファイル: test_rootDto.py プロジェクト: bahamut1221/apidoc
    def test_hydrate_type__with_known_category(self):

        root = Root()
        version = Version()
        version.name = "v"
        type = Type()
        type.category = "c"
        type.item = ObjectString()

        root.versions = {"v": version}
        version.types = {"m": type}
        version.types = {"m": type}

        category = Category("c")
        category.description = "d"

        root.categories = {"c": category}

        root_dto = RootDto()

        hydrator = Hydrator(version, {"v": version}, [])

        hydrator.hydrate_type(root_dto, root, type)

        self.assertEqual("d", root_dto.type_categories[0].description)
コード例 #5
0
    def test_category_compare__with_name(self):
        category1 = CategoryDto(Category("a"))
        category2 = CategoryDto(Category("b"))
        category1.order = 1
        category1.label = "a"
        category2.order = 1
        category2.label = "a"

        self.assertEqual(category1, sorted([category2, category1])[0])
コード例 #6
0
ファイル: category.py プロジェクト: lampard1010/mock
    def create_from_name_and_dictionary(self, name, datas):
        """Return a populated object Category from dictionary datas
        """
        category = ObjectCategory(name)
        self.set_common_datas(category, name, datas)

        if "order" in datas:
            category.order = int(datas["order"])

        return category
コード例 #7
0
ファイル: test_source_dto.py プロジェクト: bahamut1221/apidoc
    def test_category(self):
        category = Category("a")
        category.name = "a"
        category.description = "b"
        category.order = 2

        category_dto = CategoryDto(category)

        self.assertEqual("a", category_dto.name)
        self.assertEqual("b", category_dto.description)
        self.assertEqual(2, category_dto.order)
コード例 #8
0
    def test_category(self):
        category = Category("a")
        category.name = "a"
        category.description = "b"
        category.order = 2

        category_dto = CategoryDto(category)

        self.assertEqual("a", category_dto.name)
        self.assertEqual("b", category_dto.description)
        self.assertEqual(2, category_dto.order)
コード例 #9
0
    def test_hide_filtered_elements__category_exclude(self):
        root = Root()

        category1 = Category("c1")
        category2 = Category("c2")
        category3 = Category("c3")

        root.categories = {"c1": category1, "c2": category2, "c3": category3}

        config = ConfigObject()
        config["filter"]["categories"]["excludes"] = ["c1", "c3"]
        self.source.hide_filtered_elements(root, config["filter"])

        self.assertFalse(category1.display)
        self.assertTrue(category2.display)
        self.assertFalse(category3.display)
コード例 #10
0
ファイル: test_rootDto.py プロジェクト: bismark1221/apidoc
    def test_define_changes_status__updated(self):
        root_dto = RootDto()

        version1 = Version()
        version1.name = "v1"
        version1.major = 1
        version1 = VersionDto(version1)
        version2 = Version()
        version2.name = "v2"
        version2.major = 2
        version2 = VersionDto(version2)

        category1 = MethodCategory(Category("c1"))

        method1 = Method()
        method1.changes_status = {
            "v1": MultiVersion.Changes.new,
            "v2": MultiVersion.Changes.updated
        }

        category1.methods = [method1]

        root_dto.versions = [version1, version2]
        root_dto.method_categories = [category1]

        self.factory.define_changes_status(root_dto)

        self.assertEqual(MultiVersion.Changes.new,
                         method1.changes_status["v1"])
        self.assertEqual(MultiVersion.Changes.updated,
                         method1.changes_status["v2"])
コード例 #11
0
    def add_missing_categories(self, root):
        """Remove elements marked a not to display
        """

        categories = [method.category for version in root.versions.values() for method in version.methods.values() if method.category not in root.categories.keys()] + \
            [type.category for version in root.versions.values() for type in version.types.values() if type.category not in root.categories.keys()]

        for category_name in categories:
            root.categories[category_name] = Category(category_name)
コード例 #12
0
    def test_hide_filtered_elements__category_include(self):
        root = Root()

        category1 = Category("c")
        category2 = Category("c")
        category3 = Category("c")
        category1.name = "v1"
        category2.name = "v2"
        category3.name = "v3"

        root.categories = {"s1": category1, "s2": category2, "s3": category3}

        config = ConfigObject()
        config["filter"]["categories"]["includes"] = ["v1", "v3"]
        self.source.hide_filtered_elements(root, config["filter"])

        self.assertTrue(category1.display)
        self.assertFalse(category2.display)
        self.assertTrue(category3.display)
コード例 #13
0
    def test_hide_filtered_elements__category(self):
        root = Root()
        version1 = Version()

        category1 = Category("c")
        category2 = Category("c")
        category3 = Category("c")
        category1.name = "v1"
        category2.name = "v2"
        category3.name = "v3"

        root.versions = {"v1": version1}
        version1.categories = {"s1": category1, "s2": category2, "s3": category3}

        config = ConfigObject()
        self.source.hide_filtered_elements(root, config["filter"])

        self.assertTrue(category1.display)
        self.assertTrue(category2.display)
        self.assertTrue(category3.display)
コード例 #14
0
ファイル: test_rootDto.py プロジェクト: bismark1221/apidoc
    def test_hydrate_method__with_known_category(self):

        root = Root()
        version = Version()
        version.name = "v"
        method = Method()
        method.category = "c"

        root.versions = {"v": version}
        version.methods = {"m": method}
        version.types = {"m": type}

        category = Category("c")
        category.description = "d"

        root.categories = {"c": category}

        root_dto = RootDto()

        hydrator = Hydrator(version, {"v": version}, [])

        hydrator.hydrate_method(root_dto, root, method)

        self.assertEqual("d", root_dto.method_categories[0].description)
コード例 #15
0
ファイル: test_rootDto.py プロジェクト: bismark1221/apidoc
    def test_define_changes_status(self):
        root_dto = RootDto()

        version1 = Version()
        version1.name = "v1"
        version1.major = 1
        version1 = VersionDto(version1)
        version2 = Version()
        version2.name = "v2"
        version2.major = 2
        version2 = VersionDto(version2)

        category1 = MethodCategory(Category("c1"))
        category2 = TypeCategory(Category("c2"))

        method1 = Method()
        method1.changes_status = {"v1": MultiVersion.Changes.none}
        method2 = Method()
        method2.changes_status = {"v1": MultiVersion.Changes.new}
        method3 = Method()
        method3.changes_status = {"v2": MultiVersion.Changes.new}

        category1.methods = [method1, method2, method3]

        root_dto.versions = [version1, version2]
        root_dto.method_categories = [category1]
        root_dto.type_categories = [category2]

        self.factory.define_changes_status(root_dto)

        self.assertEqual(MultiVersion.Changes.new,
                         method1.changes_status["v1"])
        self.assertEqual(MultiVersion.Changes.deleted,
                         method2.changes_status["v2"])
        self.assertEqual(MultiVersion.Changes.none,
                         method3.changes_status["v1"])
コード例 #16
0
ファイル: test_rootDto.py プロジェクト: bahamut1221/apidoc
    def test_hydrate_method__with_known_category(self):

        root = Root()
        version = Version()
        version.name = "v"
        method = Method()
        method.category = "c"

        root.versions = {"v": version}
        version.methods = {"m": method}
        version.types = {"m": type}

        category = Category("c")
        category.description = "d"

        root.categories = {"c": category}

        root_dto = RootDto()

        hydrator = Hydrator(version, {"v": version}, [])

        hydrator.hydrate_method(root_dto, root, method)

        self.assertEqual("d", root_dto.method_categories[0].description)
コード例 #17
0
    def test_add_missing_categories(self):
        root = Root()
        version1 = Version()
        category1 = Category("c1")
        method1 = Method()
        method2 = Method()

        root.versions = {"v1": version1}
        root.categories = {"c1": category1}

        version1.methods = {"m1": method1, "m2": method2}

        method1.category = "c1"
        method2.category = "c2"

        self.source.add_missing_categories(root)

        self.assertEqual(2, len(root.categories))
        self.assertIsInstance(root.categories["c2"], Category)
コード例 #18
0
    def hydrate_type(self, root_dto, root, type):
        categories = dict(
            (category.name, category) for category in root_dto.type_categories)
        if type.category not in categories.keys():
            if type.category in root.categories.keys():
                category = TypeCategory(root.categories[type.category])
            else:
                category = TypeCategory(Category(type.category))
            root_dto.type_categories.append(category)
        else:
            category = categories[type.category]

        types = dict((type.name, type) for type in category.types)
        if type.name in types.keys():
            type_dto = types[type.name]
            type_dto.changes_status[
                self.version_name] = MultiVersion.Changes.none
        else:
            type_dto = Type(type)
            category.types.append(type_dto)
            type_dto.changes_status[
                self.version_name] = MultiVersion.Changes.new

        type_dto.versions.append(self.version_name)

        changes = 0
        changes += self.hydrate_value(type_dto.description, type.description)
        changes += self.hydrate_value(type_dto.format.pretty,
                                      type.format.pretty)
        changes += self.hydrate_value(type_dto.format.advanced,
                                      type.format.advanced)
        changes += self.hydrate_object(type_dto.item, type.item)

        if changes > 0 and type_dto.changes_status[
                self.version_name] is MultiVersion.Changes.none:
            type_dto.changes_status[
                self.version_name] = MultiVersion.Changes.updated

        type_dto.samples[self.version_name] = TypeSample(type)
コード例 #19
0
    def hydrate_method(self, root_dto, root_source, method):
        categories = dict((category.name, category)
                          for category in root_dto.method_categories)
        if method.category not in categories.keys():
            if method.category in root_source.categories.keys():
                category = MethodCategory(
                    root_source.categories[method.category])
            else:
                category = MethodCategory(Category(method.category))
            root_dto.method_categories.append(category)
        else:
            category = categories[method.category]

        methods = dict((method.name, method) for method in category.methods)
        if method.name in methods.keys():
            method_dto = methods[method.name]
            method_dto.changes_status[
                self.version_name] = MultiVersion.Changes.none
        else:
            method_dto = Method(method)
            category.methods.append(method_dto)
            method_dto.changes_status[
                self.version_name] = MultiVersion.Changes.new

        method_dto.versions.append(self.version_name)

        for parameter in method.request_parameters.values():
            parameter.position = method.full_uri.find("{%s}" % parameter.name)
        request_parameters = [
            RequestParameter(parameter)
            for parameter in method.request_parameters.values()
        ]
        request_headers = [
            Parameter(parameter)
            for parameter in method.request_headers.values()
        ]
        response_codes = [
            ResponseCode(parameter) for parameter in method.response_codes
        ]

        changes = 0
        changes += self.hydrate_value(method_dto.description,
                                      method.description)
        changes += self.hydrate_value(method_dto.full_uri, method.full_uri)
        changes += self.hydrate_value(method_dto.absolute_uri,
                                      method.absolute_uri)
        changes += self.hydrate_value(method_dto.code, method.code)

        changes += self.hydrate_list(method_dto.request_headers,
                                     sorted(request_headers))
        changes += self.hydrate_list(method_dto.request_parameters,
                                     sorted(request_parameters))
        changes += self.hydrate_list(method_dto.response_codes,
                                     sorted(response_codes))

        changes += self.hydrate_object(method_dto.request_body,
                                       method.request_body)
        changes += self.hydrate_object(method_dto.response_body,
                                       method.response_body)

        if changes > 0 and method_dto.changes_status[
                self.version_name] is MultiVersion.Changes.none:
            method_dto.changes_status[
                self.version_name] = MultiVersion.Changes.updated

        method_dto.samples[self.version_name] = MethodSample(method)
コード例 #20
0
 def test_sort_category_lt__on_order(self):
     v1 = CategoryDto(Category("a"))
     v1.order = 1
     v2 = CategoryDto(Category("a"))
     v2.order = 2
     self.assertLess(v1, v2)
コード例 #21
0
 def test_sort_category_lt(self):
     v1 = CategoryDto(Category("a"))
     v2 = CategoryDto(Category("b"))
     self.assertLess(v1, v2)
コード例 #22
0
 def test_sort_category_equals(self):
     v1 = CategoryDto(Category("a"))
     v1.order = 1
     v2 = CategoryDto(Category("a"))
     v2.order = 1
     self.assertEqual(v1, v2)