Esempio n. 1
0
    def to_json(self,
                compact=True,
                hide_empty_nodes=False,
                user=None,
                perm=None,
                version=None):
        """
        Returns resource represented as disambiguated JSON graph

        Keyword Arguments:
        compact -- type bool: hide superfluous node data
        hide_empty_nodes -- type bool: hide nodes without data
        """
        if version is None:
            return LabelBasedGraph.from_resource(
                resource=self,
                compact=compact,
                hide_empty_nodes=hide_empty_nodes,
                user=user,
                perm=perm)
        elif version == "beta":
            return LabelBasedGraphV2.from_resource(
                resource=self,
                compact=compact,
                hide_empty_nodes=hide_empty_nodes,
                user=user,
                perm=perm)
Esempio n. 2
0
    def test_semantic_node_with_child(self, mock_Node):
        mock_Node.objects.get.return_value = self.grouping_node

        self.grouping_node.get_direct_child_nodes = mock.Mock(return_value=[self.string_node])

        self.grouping_tile.data = {str(self.string_node.pk): "value_2"}
        self.test_resource.tiles.append(self.grouping_tile)

        label_based_graph = LabelBasedGraph.from_resource(resource=self.test_resource, compact=False, hide_empty_nodes=False)

        self.assertEqual(
            label_based_graph,
            {
                self.grouping_node.name: {
                    NODE_ID_KEY: str(self.grouping_node.pk),
                    TILE_ID_KEY: str(self.grouping_tile.pk),
                    VALUE_KEY: NON_DATA_COLLECTING_NODE,
                    self.string_node.name: {
                        NODE_ID_KEY: str(self.string_node.pk),
                        TILE_ID_KEY: str(self.grouping_tile.pk),
                        VALUE_KEY: self.grouping_tile.data[str(self.string_node.pk)],
                    },
                },
            },
        )
Esempio n. 3
0
    def test_handles_node_grouped_in_separate_card(self, mock_Node):
        mock_Node.objects.get.side_effect = [self.grouping_node, self.string_node]

        self.grouping_node.get_direct_child_nodes = mock.Mock(return_value=[self.string_node])

        self.string_tile.parenttile = self.grouping_tile

        self.test_resource.tiles.append(self.grouping_tile)
        self.test_resource.tiles.append(self.string_tile)

        label_based_graph = LabelBasedGraph.from_resource(resource=self.test_resource, compact=False, hide_empty_nodes=False)

        self.assertEqual(
            label_based_graph,
            {
                self.grouping_node.name: {
                    NODE_ID_KEY: str(self.grouping_node.pk),
                    TILE_ID_KEY: str(self.grouping_tile.pk),
                    VALUE_KEY: NON_DATA_COLLECTING_NODE,
                    self.string_node.name: {
                        NODE_ID_KEY: str(self.string_node.pk),
                        TILE_ID_KEY: str(self.string_tile.pk),
                        VALUE_KEY: self.string_tile.data[str(self.string_node.pk)],
                    },
                },
            },
        )
Esempio n. 4
0
    def test_handles_node_with_multiple_values(self, mock_Node):
        mock_Node.objects.get.return_value = self.string_node

        duplicate_node_tile = models.TileModel(data={str(self.string_node.pk): "value_2"}, nodegroup_id=str(self.string_node.pk))

        self.test_resource.tiles.append(self.string_tile)
        self.test_resource.tiles.append(duplicate_node_tile)

        label_based_graph = LabelBasedGraph.from_resource(resource=self.test_resource, compact=False, hide_empty_nodes=False)

        self.assertEqual(
            label_based_graph,
            {
                self.string_node.name: [
                    {
                        NODE_ID_KEY: str(self.string_node.pk),
                        TILE_ID_KEY: str(self.string_tile.pk),
                        VALUE_KEY: self.string_tile.data[str(self.string_node.pk)],
                    },
                    {
                        NODE_ID_KEY: str(self.string_node.pk),
                        TILE_ID_KEY: str(duplicate_node_tile.pk),
                        VALUE_KEY: duplicate_node_tile.data[str(self.string_node.pk)],
                    },
                ],
            },
        )
Esempio n. 5
0
    def to_json(self, compact=True, hide_empty_nodes=False):
        """
        Returns resource represented as disambiguated JSON graph

        Keyword Arguments:
        compact -- type bool: hide superfluous node data
        hide_empty_nodes -- type bool: hide nodes without data
        """
        return LabelBasedGraph.from_resource(resource=self, compact=compact, hide_empty_nodes=hide_empty_nodes)
Esempio n. 6
0
    def test_handles_empty_semantic_node(self, mock_Node):
        mock_Node.objects.get.return_value = self.grouping_node

        self.test_resource.tiles.append(self.grouping_tile)

        label_based_graph = LabelBasedGraph.from_resource(resource=self.test_resource, compact=False, hide_empty_nodes=False)

        self.assertEqual(
            label_based_graph,
            {
                self.grouping_node.name: {
                    NODE_ID_KEY: str(self.grouping_node.pk),
                    TILE_ID_KEY: str(self.grouping_tile.pk),
                    VALUE_KEY: NON_DATA_COLLECTING_NODE,
                },
            },
        )
Esempio n. 7
0
    def test_handles_node_with_single_value(self, mock_Node):
        mock_Node.objects.get.return_value = self.string_node

        self.test_resource.tiles.append(self.string_tile)

        label_based_graph = LabelBasedGraph.from_resource(resource=self.test_resource, compact=False, hide_empty_nodes=False)

        self.assertEqual(
            label_based_graph,
            {
                self.string_node.name: {
                    NODE_ID_KEY: str(self.string_node.pk),
                    TILE_ID_KEY: str(self.string_tile.pk),
                    VALUE_KEY: self.string_tile.data[str(self.string_node.pk)],
                },
            },
        )
Esempio n. 8
0
    def test_handles_node_with_single_value(self, mock_Node, mock_NodeGroup):
        mock_Node.objects.get.return_value = self.string_node
        mock_NodeGroup.objects.filter.return_value.values.return_value = [
            {"nodegroupid": self.string_tile.nodegroup_id, "cardinality": "1"}
        ]

        self.test_resource.tiles.append(self.string_tile)

        label_based_graph = LabelBasedGraph.from_resource(resource=self.test_resource, compact=False, hide_empty_nodes=False)

        self.assertEqual(
            label_based_graph,
            {
                self.string_node.name: {
                    NODE_ID_KEY: str(self.string_node.pk),
                    TILE_ID_KEY: str(self.string_tile.pk),
                    VALUE_KEY: self.string_tile.data[str(self.string_node.pk)],
                },
            },
        )
    def test_smoke(self, mock_Node, mock_NodeGroup):
        label_based_graph = LabelBasedGraph.from_resource(
            resource=self.test_resource, compact=False, hide_empty_nodes=False)

        self.assertEqual(label_based_graph, {})