mirror of
https://github.com/biopython/biopython.git
synced 2025-10-20 13:43:47 +08:00
$ ruff check --fix --select=I \ --config=lint.isort.force-single-line=true \ --config=lint.isort.order-by-type=false \ BioSQL/ Bio/ Tests/ Scripts/ Doc/ setup.py Using ruff version 0.4.10
87 lines
2.6 KiB
Python
87 lines
2.6 KiB
Python
#
|
|
# Copyright 2014 by Leighton Pritchard. All rights reserved.
|
|
# This code is part of the Biopython distribution and governed by its
|
|
# license. Please see the LICENSE file that should have been included
|
|
# as part of this package.
|
|
|
|
"""Tests for online functionality of the KGML modules."""
|
|
|
|
# Builtins
|
|
import os
|
|
import unittest
|
|
|
|
# Biopython
|
|
# Do we have ReportLab? Raise error if not present.
|
|
from Bio import MissingExternalDependencyError
|
|
|
|
try:
|
|
from reportlab.lib.pagesizes import A4
|
|
from reportlab.pdfgen.canvas import Canvas
|
|
except ImportError:
|
|
raise MissingExternalDependencyError(
|
|
"Install reportlab if you want to use Bio.Graphics."
|
|
) from None
|
|
|
|
# Do we have PIL?
|
|
try:
|
|
from PIL import Image
|
|
except ImportError:
|
|
raise MissingExternalDependencyError(
|
|
"Install Pillow or its predecessor PIL (Python Imaging Library) "
|
|
"if you want to use bitmaps from KGML."
|
|
) from None
|
|
|
|
|
|
# Biopython Bio.KEGG.KGML
|
|
import requires_internet
|
|
|
|
# test_KGML_graphics module
|
|
from test_KGML_graphics import PathwayData
|
|
|
|
from Bio.Graphics.KGML_vis import KGMLCanvas
|
|
from Bio.KEGG.KGML.KGML_parser import read
|
|
|
|
requires_internet.check()
|
|
|
|
|
|
class KGMLPathwayOnlineTest(unittest.TestCase):
|
|
"""Import XML file and write KGML - online tests.
|
|
|
|
Import metabolic maps from a local .xml KGML file, and from
|
|
the KEGG site, and write valid KGML output for each
|
|
"""
|
|
|
|
def setUp(self):
|
|
# Does our output directory exist? If not, create it
|
|
if not os.path.isdir("KEGG"):
|
|
os.mkdir("KEGG")
|
|
# Define some data to work with as a list of tuples:
|
|
# (infilename, outfilename, (entry_count, ortholog_count,
|
|
# compound_count, map_counts), pathway_image,
|
|
# show_image_map)
|
|
self.data = [
|
|
PathwayData("01100", (3628, 1726, 1746, 149)),
|
|
PathwayData("03070", (81, 72, 8, 1), True),
|
|
]
|
|
|
|
def test_render_KGML_import_map(self):
|
|
"""Basic rendering of KGML: use imported imagemap.
|
|
|
|
Uses the URL indicated in the .xml file.
|
|
|
|
This test may fail if the imagemap is not available (e.g. if
|
|
there is not a web connection), and may look odd if the remote
|
|
imagemap has changed since the local KGML file was downloaded.
|
|
"""
|
|
# We test rendering of the original KEGG KGML using imported files
|
|
for p in self.data:
|
|
with open(p.infilename) as f:
|
|
pathway = read(f)
|
|
kgml_map = KGMLCanvas(pathway, import_imagemap=True)
|
|
kgml_map.draw(p.output_stem + "_importmap.pdf")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
runner = unittest.TextTestRunner(verbosity=2)
|
|
unittest.main(testRunner=runner)
|