Skip to content

Commit 347d9d8

Browse files
authored
Merge pull request #6 from CIAT-DAPA/develop
GAP-31 new tests have been added for models
2 parents c1ea82d + f487714 commit 347d9d8

File tree

4 files changed

+188
-0
lines changed

4 files changed

+188
-0
lines changed

src/tests/test_accession.py

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,61 @@ def test_create_accession(self):
4444
self.assertEqual(accession.latitude, 40.7128)
4545
self.assertEqual(accession.longitude, -74.0060)
4646

47+
48+
def test_get_accession_by_crop(self):
49+
self.accession.save()
50+
accessions = Accession.objects(crop=self.crop)
51+
self.assertGreaterEqual(len(accessions), 1)
52+
accession = accessions.first()
53+
self.assertEqual(self.crop.id, accession.crop.id)
54+
55+
def test_get_accession_by_group(self):
56+
self.accession.save()
57+
accessions =Accession.objects(landrace_group=self.group)
58+
self.assertGreaterEqual(len(accessions), 1)
59+
accession = accessions.first()
60+
self.assertEqual(self.group.id, accession.landrace_group.id)
61+
62+
def test_unique_ext_id(self):
63+
self.accession.save()
64+
accession = Accession(
65+
species_name='Test Species',
66+
crop=self.crop,
67+
landrace_group=self.group,
68+
institution_name='ICARDA',
69+
source_database='GENESYS',
70+
latitude=91, # Latitud inválida
71+
longitude=-181, # Longitud inválida
72+
accession_id='12345',
73+
ext_id='123'
74+
)
75+
with self.assertRaises(Exception) as context:
76+
accession.save()
77+
print(str(context.exception))
78+
self.assertTrue('Tried to save duplicate unique keys (E11000 Duplicate Key Error)' in str(context.exception))
79+
80+
def test_get_accession_by_invalid_id(self):
81+
# Busca un country por un ID que no existe
82+
found_country = Accession.objects(crop='609e996db1751152b09f5555').first()
83+
self.assertIsNone(found_country)
84+
85+
def test_update_accession(self):
86+
self.accession.save()
87+
88+
self.accession.species_name = 'New Species Name'
89+
self.accession.save()
90+
91+
accession = Accession.objects(id=self.accession.id).first()
92+
self.assertEqual(accession.species_name, 'New Species Name')
93+
94+
def test_delete_accession(self):
95+
self.accession.save()
96+
97+
self.accession.delete()
98+
99+
accession = Accession.objects(id=self.accession.id).first()
100+
self.assertIsNone(accession)
101+
47102
def tearDown(self):
48103
self.crop.delete()
49104
self.group.delete()

src/tests/test_country.py

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,58 @@ def test_create_country(self):
3030
self.assertEqual(country.iso_2, 'US')
3131
self.assertEqual(country.name, 'United States of America')
3232

33+
def test_get_country_by_invalid_id(self):
34+
# Busca un country por un ID que no existe
35+
found_country = Country.objects(id='609e996db1751152b09f5555').first()
36+
self.assertIsNone(found_country)
37+
38+
def test_get_country_by_iso_2(self):
39+
self.country.save()
40+
41+
# Busca el country por su ISO 2
42+
found_country = Country.objects(iso_2=self.country.iso_2).first()
43+
self.assertIsNotNone(found_country)
44+
45+
# Verifica que los datos del country encontrado sean los mismos que los creados previamente
46+
self.assertEqual(found_country.iso_2, 'US')
47+
self.assertEqual(found_country.name, 'United States of America')
48+
49+
def test_get_country_by_invalid_iso_2(self):
50+
# Busca un country por un ISO 2 que no existe
51+
found_country = Country.objects(iso_2='XX').first()
52+
self.assertIsNone(found_country)
53+
54+
def test_update_country(self):
55+
# Actualiza los datos de un país existente
56+
57+
self.country.save()
58+
59+
self.country.name = 'USA'
60+
self.country.save()
61+
62+
updated_country = Country.objects(id=self.country.id).first()
63+
self.assertEqual(updated_country.name, 'USA')
64+
65+
def test_unique_iso_2(self):
66+
# Verifica que no se puedan crear dos países con el mismo ISO 2
67+
self.country.save()
68+
duplicate_country = Country(
69+
iso_2='US',
70+
name='USA',
71+
)
72+
73+
with self.assertRaises(Exception) as context:
74+
duplicate_country.save()
75+
76+
self.assertTrue('Tried to save duplicate unique keys (E11000 Duplicate Key Error)' in str(context.exception))
77+
78+
def test_delete_country(self):
79+
self.country.save()
80+
81+
self.country.delete()
82+
83+
country = Country.objects(id=self.country.id).first()
84+
self.assertIsNone(country)
3385

3486
def tearDown(self):
3587
Country.objects.delete()

src/tests/test_crop.py

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,48 @@ def test_create_crop(self):
3535
self.assertEqual(crop.base_name, 'zea_mays')
3636
self.assertEqual(crop.app_name, 'Corn')
3737

38+
def test_create_duplicate_crop(self):
39+
self.crop.save()
40+
crop2 = Crop(
41+
ext_id='1234',
42+
name='wheat',
43+
base_name='triticum_aestivum',
44+
app_name='Wheat'
45+
)
46+
47+
with self.assertRaises(Exception) as context:
48+
crop2.save()
49+
50+
print(str(context.exception))
51+
self.assertTrue('Tried to save duplicate unique keys (E11000 Duplicate Key Error)' in str(context.exception))
52+
53+
def test_get_crop_by_invalid_id(self):
54+
# Busca un country por un ID que no existe
55+
found_country = Crop.objects(id='609e996db1751152b09f5555').first()
56+
self.assertIsNone(found_country)
57+
58+
def test_update_crop(self):
59+
self.crop.save()
60+
61+
self.crop.name = 'maize'
62+
self.crop.base_name = 'zea_mays_subsp_mays'
63+
self.crop.app_name = 'Maize'
64+
self.crop.save()
65+
66+
crop = Crop.objects(id=self.crop.id).first()
67+
self.assertEqual(crop.ext_id, '1234')
68+
self.assertEqual(crop.name, 'maize')
69+
self.assertEqual(crop.base_name, 'zea_mays_subsp_mays')
70+
self.assertEqual(crop.app_name, 'Maize')
71+
72+
def test_delete_crop(self):
73+
self.crop.save()
74+
75+
self.crop.delete()
76+
crop = Crop.objects(id=self.crop.id).first()
77+
78+
self.assertIsNone(crop)
79+
3880
def tearDown(self):
3981
Crop.objects.delete()
4082

src/tests/test_group.py

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,45 @@ def test_create_group(self):
3131
self.assertEqual(group.crop, self.crop)
3232
self.assertEqual(group.ext_id, '1234')
3333

34+
def test_create_duplicate_group(self):
35+
# Intenta crear un grupo con el mismo ext_id que otro grupo existente
36+
self.group.save()
37+
group2 = Group(
38+
group_name='Modern corn hybrids',
39+
crop=self.crop,
40+
ext_id='1234'
41+
)
42+
with self.assertRaises(Exception) as context:
43+
group2.save()
44+
45+
print(str(context.exception))
46+
self.assertTrue('Tried to save duplicate unique keys (E11000 Duplicate Key Error)' in str(context.exception))
47+
48+
def test_create_group_without_crop(self):
49+
# Intenta crear un grupo sin el objeto Crop
50+
group2 = Group(
51+
group_name='Landraces of corn',
52+
ext_id='5678'
53+
)
54+
with self.assertRaises(Exception) as context:
55+
group2.save()
56+
57+
print(str(context.exception))
58+
self.assertTrue("ValidationError (Group:None) (Field is required: ['crop'])" in str(context.exception))
59+
60+
def test_delete_group(self):
61+
self.group.save()
62+
63+
self.group.delete()
64+
group = Group.objects(id=self.group.id).first()
65+
66+
self.assertIsNone(group)
67+
68+
def test_get_country_by_invalid_id(self):
69+
# Busca un country por un ID que no existe
70+
found_country = Group.objects(crop='609e996db1751152b09f5555').first()
71+
self.assertIsNone(found_country)
72+
3473
def tearDown(self):
3574
self.crop.delete()
3675
Group.objects.delete()

0 commit comments

Comments
 (0)