# Copyright 2013 Gokcen Eraslan. 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.

"""Unit test for Bio.PDB.NACCESS which needs NACCESS tool.

See also test_PDB.py for dependency free NACCESS tests.
"""

import subprocess
import unittest


from Bio import MissingExternalDependencyError
from Bio.PDB import PDBParser
from Bio.PDB.NACCESS import NACCESS

# Check if NACCESS is installed
try:
    subprocess.check_call(["naccess", "-q"],
                          stdout=subprocess.PIPE,
                          stderr=subprocess.STDOUT)
except OSError:
    raise MissingExternalDependencyError(
        "Install naccess if you want to use it from Biopython.")


class NACCESS_test(unittest.TestCase):
    """Test NACCESS module."""

    def test_NACCESS(self):
        """Test NACCESS generation from PDB."""
        p = PDBParser()
        pdbfile = "PDB/1A8O.pdb"
        model = p.get_structure("1A8O", pdbfile)[0]
        naccess = NACCESS(model, pdbfile)
        self.assertEqual(len(naccess), 66)


if __name__ == "__main__":
    runner = unittest.TextTestRunner(verbosity=2)
    unittest.main(testRunner=runner)
