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)
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)], }, }, }, )
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)], }, }, }, )
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)], }, ], }, )
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)
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, }, }, )
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)], }, }, )
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, {})