From f065ea860f8001942bbf7c61eb49e515d358d2eb Mon Sep 17 00:00:00 2001 From: Alexander Kabui Date: Wed, 31 Mar 2021 22:31:01 +0300 Subject: add temp_db setup and integration tests --- gn3/api/datasets.py | 28 ++++++++++++++++++++++++++++ gn3/experimental_db.py | 11 +++++++++++ tests/integration/test_datasets.py | 28 ++++++++++++++++++++++++++++ 3 files changed, 67 insertions(+) create mode 100644 gn3/api/datasets.py create mode 100644 gn3/experimental_db.py create mode 100644 tests/integration/test_datasets.py diff --git a/gn3/api/datasets.py b/gn3/api/datasets.py new file mode 100644 index 0000000..874c76a --- /dev/null +++ b/gn3/api/datasets.py @@ -0,0 +1,28 @@ +"""this module contains code for creating datasets""" +from flask import Blueprint +from flask import jsonify + +from gn3.computations.datasets import create_dataset + + +dataset = Blueprint("dataset", __name__) + + +@dataset.route("/") +def dataset_home(): + """initial test endpont for dataset""" + return jsonify({"results": "ok"}) + + +@dataset.route("/create//") +@dataset.route("/create//") +def create_dataset_api(dataset_name, dataset_type=None): + """Test api/create/dataset//""" + + new_dataset = create_dataset( + dataset_type=dataset_type, dataset_name=dataset_name) + + results = { + "dataset":new_dataset + } + return jsonify(results) diff --git a/gn3/experimental_db.py b/gn3/experimental_db.py new file mode 100644 index 0000000..c928265 --- /dev/null +++ b/gn3/experimental_db.py @@ -0,0 +1,11 @@ +"""this function contains experimental db staff""" +from typing import Tuple +import MySQLdb as mdb # type: ignore + + +def database_connector()->Tuple: + """function to create db connector""" + conn = mdb.connect("local", "kabui", "1234", "db_webqtl") + cursor = conn.cursor() + + return (conn, cursor) diff --git a/tests/integration/test_datasets.py b/tests/integration/test_datasets.py new file mode 100644 index 0000000..255d998 --- /dev/null +++ b/tests/integration/test_datasets.py @@ -0,0 +1,28 @@ +"""this module contains integration tests for datasets""" +from unittest import TestCase +from unittest import mock + +from collections import namedtuple +from gn3.app import create_app + + +class DatasetIntegrationTests(TestCase): + """class contains integration tests for datasets""" + + def setUp(self): + self.app = create_app().test_client() + + @mock.patch("gn3.api.datasets.create_dataset") + def test_create_dataset(self, mock_dataset): + """test for creating dataset object""" + mock_dataset_creator = namedtuple( + 'ProbeSet', ["dataset_name", "dataset_type"]) + new_dataset = mock_dataset_creator("HC_M2_0606_P", "ProbeSet") + mock_dataset.return_value = new_dataset + response = self.app.get( + "/api/dataset/create/HC_M2_0606_P/", follow_redirects=True) + mock_dataset.assert_called_once_with( + dataset_type=None, dataset_name="HC_M2_0606_P") + results = response.get_json()["dataset"] + self.assertEqual(results[1], "ProbeSet") + self.assertEqual(response.status_code, 200) -- cgit v1.2.3