Skip to content

Commit 4ce9049

Browse files
sdenton4copybara-github
authored andcommitted
Fix metadata_test.
PiperOrigin-RevId: 876445872
1 parent e9fcc5e commit 4ce9049

File tree

1 file changed

+25
-16
lines changed

1 file changed

+25
-16
lines changed

perch_hoplite/agile/tests/metadata_test.py

Lines changed: 25 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -16,25 +16,30 @@
1616
"""Tests for metadata handling."""
1717

1818
import os
19+
import shutil
20+
import tempfile
1921

20-
from absl.testing import absltest
2122
from perch_hoplite.agile import metadata
2223
from perch_hoplite.db import interface as hoplite_interface
2324

25+
from absl.testing import absltest
26+
2427

2528
class MetadataTest(absltest.TestCase):
2629

2730
def setUp(self):
2831
super().setUp()
29-
self.temp_dir = self.create_tempdir().full_path
32+
# `self.create_tempdir()` raises an UnparsedFlagAccessError, which is why
33+
# we use `tempdir` directly.
34+
self.tempdir = tempfile.mkdtemp()
3035
self.desc_path = os.path.join(
31-
self.temp_dir, 'hoplite_metadata_description.csv'
36+
self.tempdir, 'hoplite_metadata_description.csv'
3237
)
3338
self.dep_path = os.path.join(
34-
self.temp_dir, 'hoplite_deployments_metadata.csv'
39+
self.tempdir, 'hoplite_deployments_metadata.csv'
3540
)
3641
self.rec_path = os.path.join(
37-
self.temp_dir, 'hoplite_recordings_metadata.csv'
42+
self.tempdir, 'hoplite_recordings_metadata.csv'
3843
)
3944

4045
with open(self.desc_path, 'w') as f:
@@ -58,13 +63,17 @@ def setUp(self):
5863
with open(self.rec_path, 'w') as f:
5964
f.write('recording,observer,temp_c\nrec_a,Buffy,\nrec_b,Willow,22.2\n')
6065

66+
def tearDown(self):
67+
super().tearDown()
68+
shutil.rmtree(self.tempdir)
69+
6170
def test_metadata_loading(self):
62-
md = metadata.AgileMetadata.from_directory(self.temp_dir)
71+
md = metadata.AgileMetadata.from_directory(self.tempdir)
6372
self.assertLen(md.deployment_metadata, 2)
6473
self.assertLen(md.recording_metadata, 2)
6574

6675
def test_get_deployment_metadata(self):
67-
md = metadata.AgileMetadata.from_directory(self.temp_dir)
76+
md = metadata.AgileMetadata.from_directory(self.tempdir)
6877
print(md.recording_metadata)
6978
dep_a_md = md.get_deployment_metadata('dep_a')
7079
self.assertEqual(
@@ -79,54 +88,54 @@ def test_get_deployment_metadata(self):
7988
)
8089

8190
def test_get_recording_metadata(self):
82-
md = metadata.AgileMetadata.from_directory(self.temp_dir)
91+
md = metadata.AgileMetadata.from_directory(self.tempdir)
8392
rec_b_md = md.get_recording_metadata('rec_b')
8493
self.assertEqual(
8594
rec_b_md,
8695
{'recording': 'rec_b', 'observer': 'Willow', 'temp_c': 22.2},
8796
)
8897

8998
def test_get_recording_metadata_missing_value(self):
90-
md = metadata.AgileMetadata.from_directory(self.temp_dir)
99+
md = metadata.AgileMetadata.from_directory(self.tempdir)
91100
rec_a_md = md.get_recording_metadata('rec_a')
92101
self.assertEqual(
93102
rec_a_md,
94103
{'recording': 'rec_a', 'observer': 'Buffy', 'temp_c': None},
95104
)
96105

97106
def test_get_unknown_metadata(self):
98-
md = metadata.AgileMetadata.from_directory(self.temp_dir)
107+
md = metadata.AgileMetadata.from_directory(self.tempdir)
99108
self.assertEqual({}, md.get_deployment_metadata('unknown'))
100109
self.assertEqual({}, md.get_recording_metadata('unknown'))
101110

102111
def test_missing_description_file(self):
103112
os.remove(self.desc_path)
104-
md = metadata.AgileMetadata.from_directory(self.temp_dir)
113+
md = metadata.AgileMetadata.from_directory(self.tempdir)
105114
self.assertEqual({}, md.get_deployment_metadata('dep_a'))
106115
self.assertEqual({}, md.get_recording_metadata('rec_a'))
107116

108117
def test_missing_deployment_file(self):
109118
os.remove(self.dep_path)
110-
md = metadata.AgileMetadata.from_directory(self.temp_dir)
119+
md = metadata.AgileMetadata.from_directory(self.tempdir)
111120
self.assertEqual({}, md.get_deployment_metadata('dep_a'))
112121
self.assertLen(md.recording_metadata, 2)
113122

114123
def test_missing_recording_file(self):
115124
os.remove(self.rec_path)
116-
md = metadata.AgileMetadata.from_directory(self.temp_dir)
125+
md = metadata.AgileMetadata.from_directory(self.tempdir)
117126
self.assertLen(md.deployment_metadata, 2)
118127
self.assertEqual({}, md.get_recording_metadata('rec_a'))
119128

120129
def test_get_annotations(self):
121-
ann_path = os.path.join(self.temp_dir, 'hoplite_annotations.csv')
130+
ann_path = os.path.join(self.tempdir, 'hoplite_annotations.csv')
122131
with open(ann_path, 'w') as f:
123132
f.write(
124133
'recording,label,start_offset_s,end_offset_s,label_type\n'
125134
'rec_a,species_a,0.5,1.5,positive\n'
126135
'rec_a,species_b,2.0,3.0,positive\n'
127136
'rec_b,species_a,1.0,2.0,negative\n'
128137
)
129-
md = metadata.AgileMetadata.from_directory(self.temp_dir)
138+
md = metadata.AgileMetadata.from_directory(self.tempdir)
130139
rec_a_ann = md.get_recording_annotations('rec_a')
131140
self.assertEqual(
132141
rec_a_ann,
@@ -168,7 +177,7 @@ def test_get_annotations(self):
168177

169178
with self.subTest('no annotations'):
170179
os.remove(ann_path)
171-
md = metadata.AgileMetadata.from_directory(self.temp_dir)
180+
md = metadata.AgileMetadata.from_directory(self.tempdir)
172181
self.assertEqual([], md.get_recording_annotations('rec_a'))
173182

174183

0 commit comments

Comments
 (0)