forked from enviPath/enviPy
175 lines
23 KiB
Python
175 lines
23 KiB
Python
from django.test import TestCase
|
|
|
|
from bayer.models import PESCompound, PESStructure
|
|
from epdb.logic import UserManager
|
|
from epdb.models import CompoundStructure, Compound
|
|
|
|
|
|
class PESTest(TestCase):
|
|
|
|
@classmethod
|
|
def setUpTestData(cls):
|
|
cls.user = UserManager.create_user(
|
|
"test-user",
|
|
"test-user@test.com",
|
|
"TestPass123",
|
|
set_setting=False,
|
|
add_to_group=False,
|
|
is_active=True,
|
|
)
|
|
|
|
cls.pes_dummy = {
|
|
"representativeStructures": [
|
|
{
|
|
"ctab": "\n RDKit 2D\n\n 14 15 0 0 0 0 0 0 0 0999 V2000\n 2.7760 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.2760 0.0000 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n 0.3943 1.2135 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.7062 2.6807 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -0.4086 3.6844 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n -0.0967 5.1517 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -1.8351 3.2209 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -2.1470 1.7537 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n -3.5736 1.2902 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -1.0323 0.7500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -1.0323 -0.7500 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n 0.3943 -1.2135 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -2.9499 4.2246 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 2.1328 3.1443 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0\n 2 3 1 0\n 3 4 1 0\n 4 5 1 0\n 5 6 1 0\n 5 7 1 0\n 7 8 1 0\n 8 9 1 0\n 8 10 1 0\n 10 11 1 0\n 11 12 2 0\n 7 13 2 0\n 4 14 2 0\n 12 2 1 0\n 10 3 2 0\nM END\n"
|
|
}
|
|
],
|
|
"representations": [
|
|
{
|
|
"renderingOptions": {
|
|
"molecularFormulaRenderingOption": {
|
|
"displayOnRepresentation": False,
|
|
"labelCoords": {
|
|
"x": 0,
|
|
"y": 0
|
|
}
|
|
},
|
|
"modificationRenderingOptions": [
|
|
{
|
|
"localModificationId": 1,
|
|
"displayNominalMass": False,
|
|
"displaySumFormula": False
|
|
}
|
|
],
|
|
"contouringType": "convexHull",
|
|
"colored": True,
|
|
"abbreviations": False,
|
|
"structureSize": 0,
|
|
"showDirection": None,
|
|
"showStereoFlags": False
|
|
},
|
|
"type": "black-and-white",
|
|
"mimeType": "image/png",
|
|
"base64": "data:image/png;base64,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"
|
|
},
|
|
{
|
|
"renderingOptions": {
|
|
"molecularFormulaRenderingOption": {
|
|
"displayOnRepresentation": False,
|
|
"labelCoords": {
|
|
"x": 0,
|
|
"y": 0
|
|
}
|
|
},
|
|
"modificationRenderingOptions": [
|
|
{
|
|
"localModificationId": 1,
|
|
"displayNominalMass": False,
|
|
"displaySumFormula": False
|
|
}
|
|
],
|
|
"contouringType": "convexHull",
|
|
"colored": True,
|
|
"abbreviations": False,
|
|
"structureSize": 0,
|
|
"showDirection": None,
|
|
"showStereoFlags": False
|
|
},
|
|
"type": "color",
|
|
"mimeType": "image/png",
|
|
"base64": "data:image/png;base64,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"
|
|
}
|
|
],
|
|
"lifecycleStatus": "Published",
|
|
"corporateId": "PES-000126",
|
|
'pes_url': 'https://pesregapp-test.cropkey-np.ag/entities/PES-000126',
|
|
"classificationLevel": "Restricted",
|
|
"dataPools": None,
|
|
}
|
|
|
|
def test_smoke(self):
|
|
pes_compound = PESCompound.create(
|
|
self.user.default_package,
|
|
self.pes_dummy,
|
|
'Test PES',
|
|
'Test Description'
|
|
)
|
|
|
|
self.assertEqual(PESCompound.objects.count(), 1)
|
|
|
|
obj = PESCompound.objects.first()
|
|
|
|
self.assertEqual(obj.name, 'Test PES')
|
|
self.assertEqual(obj.description, 'Test Description')
|
|
self.assertTrue(isinstance(obj.default_structure, PESStructure))
|
|
self.assertEqual(obj.default_structure.pes_link, 'https://pesregapp-test.cropkey-np.ag/entities/PES-000126')
|
|
self.assertEqual(obj.default_structure.smiles, "Cn1c2c(=O)n(C)c(=O)n(C)c2nc1")
|
|
self.assertTrue(isinstance(obj.normalized_structure, PESStructure))
|
|
self.assertEqual(obj.normalized_structure.pes_link, 'https://pesregapp-test.cropkey-np.ag/entities/PES-000126')
|
|
self.assertEqual(obj.normalized_structure.smiles, "CN1C(=O)C2=C(N=CN2C)N(C)C1=O")
|
|
|
|
self.assertEqual(CompoundStructure.objects.count(), 2)
|
|
self.assertEqual(PESStructure.objects.count(), 2)
|
|
|
|
|
|
def test_pes_dedup(self):
|
|
_ = PESCompound.create(
|
|
self.user.default_package,
|
|
self.pes_dummy,
|
|
'Test PES',
|
|
'Test Description'
|
|
)
|
|
|
|
self.assertEqual(PESCompound.objects.count(), 1)
|
|
|
|
_ = PESCompound.create(
|
|
self.user.default_package,
|
|
self.pes_dummy,
|
|
'Test PES 2',
|
|
'Test Description 2'
|
|
)
|
|
|
|
# Assert deduplication works we only have one object
|
|
self.assertEqual(PESCompound.objects.count(), 1)
|
|
|
|
obj = PESCompound.objects.first()
|
|
|
|
# Assert name and description remain
|
|
self.assertEqual(obj.name, 'Test PES')
|
|
self.assertEqual(obj.description, 'Test Description')
|
|
|
|
|
|
def test_add_pes_and_compound_with_same_representative(self):
|
|
pes = PESCompound.create(
|
|
self.user.default_package,
|
|
self.pes_dummy,
|
|
'Test PES',
|
|
'Test Description'
|
|
)
|
|
|
|
regular = Compound.create(
|
|
self.user.default_package,
|
|
"CN1C(=O)C2=C(N=CN2C)N(C)C1=O", # Already normalized
|
|
'Test PES',
|
|
'Test Description'
|
|
)
|
|
|
|
self.assertNotEqual(pes, regular)
|
|
self.assertTrue(isinstance(pes, PESCompound))
|
|
self.assertTrue(isinstance(regular, Compound))
|
|
self.assertEqual(Compound.objects.count(), 2)
|
|
self.assertEqual(PESCompound.objects.count(), 1)
|
|
|
|
self.assertEqual(CompoundStructure.objects.count(), 3)
|
|
|
|
|
|
|
|
|
|
# def test_api_add_pes(self):
|
|
#
|
|
#
|
|
# def test_my_endpoint():
|
|
# client = TestClient(router, auth=MockMSAuth())
|
|
# response = client.get("/my-endpoint", headers={"Authorization": "Bearer mock-token"})
|
|
# assert response.status_code == 200
|