Skip to content

Commit 5b9ba80

Browse files
author
OliverBScott
committed
Updated tests for scaffold network + tree
1 parent 80ef00d commit 5b9ba80

File tree

5 files changed

+106
-4
lines changed

5 files changed

+106
-4
lines changed

tests/__init__.py

Lines changed: 39 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import os
66

77
import pytest
8+
from rdkit import Chem
89
from rdkit import rdBase
910

1011
rdBase.DisableLog('rdApp.*')
@@ -15,10 +16,44 @@ def test_root_dir():
1516

1617

1718
@pytest.fixture(name='sdf_file')
18-
def mock_sdf():
19-
return
19+
def mock_sdf(tmp_path):
20+
d = tmp_path / "test_data"
21+
d.mkdir()
22+
p = d / "test.sdf"
23+
writer = Chem.SDWriter(str(p))
24+
writer.write(Chem.MolFromSmiles('CN1C(=O)CN=C(C2=C1C=CC(=C2)Cl)C3=CC=CC=C3'))
25+
writer.write(Chem.MolFromSmiles('CCC1=CC2=C(S1)N(C(=O)CN=C2C3=CC=CC=C3Cl)C'))
26+
writer.close()
27+
return str(p)
28+
29+
30+
@pytest.fixture(name='sdf_file_2')
31+
def mock_sdf_2(tmp_path):
32+
d = tmp_path / "test_data"
33+
try:
34+
d.mkdir()
35+
except FileExistsError:
36+
pass
37+
p = d / "test_2.sdf"
38+
writer = Chem.SDWriter(str(p))
39+
writer.write(Chem.MolFromSmiles('C1C(=O)NC2=C(C=C(C=C2)Br)C(=N1)C3=CC=CC=N3'))
40+
writer.write(Chem.MolFromSmiles('CC1=NN(C2=C1C(=NCC(=O)N2C)C3=CC=CC=C3F)C'))
41+
writer.close()
42+
return str(p)
2043

2144

2245
@pytest.fixture(name='smiles_file')
23-
def mock_smiles_file():
24-
return
46+
def mock_smiles_file(tmp_path):
47+
d = tmp_path / "test_data"
48+
d.mkdir()
49+
p = d / "test.smi"
50+
writer = Chem.SmilesWriter(str(p))
51+
writer.write(Chem.MolFromSmiles('CN1C(=O)CN=C(C2=C1C=CC(=C2)Cl)C3=CC=CC=C3'))
52+
writer.write(Chem.MolFromSmiles('CCC1=CC2=C(S1)N(C(=O)CN=C2C3=CC=CC=C3Cl)C'))
53+
writer.close()
54+
return str(p)
55+
56+
57+
def canon(smiles):
58+
"""Canonicalize SMILES for safety. If canonicalization ever changes this should remain consistent"""
59+
return Chem.MolToSmiles(Chem.MolFromSmiles(smiles))

tests/io/test_smiles.py

Whitespace-only changes.

tests/io/test_supplier.py

Whitespace-only changes.

tests/test_network.py

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
"""
2+
scaffoldgraph tests.test_network
3+
"""
4+
5+
import pytest
6+
7+
import scaffoldgraph as sg
8+
9+
10+
@pytest.fixture(name='test_net')
11+
def test_network(sdf_file):
12+
network = sg.ScaffoldNetwork.from_sdf(sdf_file)
13+
return network
14+
15+
16+
def test_network_from_sdf(sdf_file):
17+
network = sg.ScaffoldNetwork.from_sdf(sdf_file)
18+
assert network.num_scaffold_nodes == 8
19+
assert network.num_molecule_nodes == 2
20+
21+
22+
def test_network_from_smiles(smiles_file):
23+
network = sg.ScaffoldNetwork.from_smiles_file(smiles_file)
24+
assert network.num_scaffold_nodes == 8
25+
assert network.num_molecule_nodes == 2
26+
27+
28+
def test_hiers(sdf_file):
29+
network = sg.HierS.from_sdf(sdf_file)
30+
assert network.num_scaffold_nodes == 5
31+
assert network.num_molecule_nodes == 2
32+
33+
34+
def test_repr(test_net):
35+
assert repr(test_net) == '<ScaffoldNetwork at {}>'.format(hex(id(test_net)))

tests/test_tree.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
"""
2+
scaffoldgraph tests.test_tree
3+
"""
4+
5+
import networkx as nx
6+
import pytest
7+
8+
import scaffoldgraph as sg
9+
10+
11+
@pytest.fixture(name='test_tree')
12+
def test_tree_graph(sdf_file):
13+
tree = sg.ScaffoldTree.from_sdf(sdf_file)
14+
return tree
15+
16+
17+
def test_tree_from_sdf(sdf_file):
18+
tree = sg.ScaffoldTree.from_sdf(sdf_file)
19+
assert tree.num_scaffold_nodes == 5
20+
assert tree.num_molecule_nodes == 2
21+
assert nx.is_tree(tree)
22+
23+
24+
def test_tree_from_smiles(smiles_file):
25+
tree = sg.ScaffoldTree.from_smiles_file(smiles_file)
26+
assert tree.num_scaffold_nodes == 5
27+
assert tree.num_molecule_nodes == 2
28+
assert nx.is_tree(tree)
29+
30+
31+
def test_repr(test_tree):
32+
assert repr(test_tree) == '<ScaffoldTree at {}>'.format(hex(id(test_tree)))

0 commit comments

Comments
 (0)