File: TestToolshed.py

package info (click to toggle)
python-bioblend 1.2.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,096 kB
  • sloc: python: 7,596; sh: 219; makefile: 158
file content (78 lines) | stat: -rw-r--r-- 3,477 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
import os
import unittest

import bioblend
import bioblend.toolshed
from . import test_util


@test_util.skip_unless_toolshed()
class TestToolshed(unittest.TestCase):
    def setUp(self):
        toolshed_url = os.environ["BIOBLEND_TOOLSHED_URL"]
        self.ts = bioblend.toolshed.ToolShedInstance(url=toolshed_url)

    def test_categories_client(self):
        # get_categories
        categories = self.ts.categories.get_categories()
        assert "Assembly" in [c["name"] for c in categories]
        # we cannot test get_categories with deleted=True as it requires administrator status

        # show_category
        visualization_category_id = [c for c in categories if c["name"] == "Visualization"][0]["id"]
        visualization_category = self.ts.categories.show_category(visualization_category_id)
        assert visualization_category["description"] == "Tools for visualizing data"

        # get_repositories
        repositories = self.ts.categories.get_repositories(visualization_category_id)
        repositories_reversed = self.ts.categories.get_repositories(visualization_category_id, sort_order="desc")
        assert repositories["repositories"][0]["model_class"] == "Repository"
        assert len(repositories["repositories"]) > 200
        assert repositories["repositories"][0] == repositories_reversed["repositories"][-1]

    def test_repositories_client(self):
        # get_repositories
        repositories = self.ts.repositories.get_repositories()
        assert len(repositories) > 5000
        assert repositories[0]["model_class"] == "Repository"

        repositories = self.ts.repositories.get_repositories(name="bam_to_sam", owner="devteam")
        assert len(repositories) == 1
        bam_to_sam_repo = repositories[0]
        assert bam_to_sam_repo["name"] == "bam_to_sam"
        assert bam_to_sam_repo["owner"] == "devteam"

        # search_repositories
        samtools_search = self.ts.repositories.search_repositories("samtools", page_size=5)
        assert int(samtools_search["total_results"]) > 20
        assert len(samtools_search["hits"]) == 5

        # show_repository
        show_bam_to_sam_repo = self.ts.repositories.show_repository(bam_to_sam_repo["id"])
        assert "SAM" in show_bam_to_sam_repo["long_description"]

        # test_create_repository
        # need to provide an API key to test this

        # test_update_repository
        # need to provide an API key to test this

    def test_repositories_revisions(self):
        # get_ordered_installable_revisions
        bam_to_sam_revisions = self.ts.repositories.get_ordered_installable_revisions("bam_to_sam", "devteam")
        assert len(bam_to_sam_revisions) >= 4

        # get_repository_revision_install_info
        bam_to_sam_revision_install_info = self.ts.repositories.get_repository_revision_install_info(
            "bam_to_sam", "devteam", bam_to_sam_revisions[0]
        )
        assert len(bam_to_sam_revision_install_info) == 3
        assert bam_to_sam_revision_install_info[0].get("model_class") == "Repository"
        assert bam_to_sam_revision_install_info[1].get("model_class") == "RepositoryMetadata"
        assert bam_to_sam_revision_install_info[2].get("model_class") is None

    def test_tools_client(self):
        # search_tools
        samtools_search = self.ts.tools.search_tools("samtools", page_size=5)
        assert int(samtools_search["total_results"]) > 2000
        assert len(samtools_search["hits"]) == 5