Exemple #1
0
 def test_files_by_name__should_provide_group(self):
     target = Metadata(ls_txt_lines)
     file: File = target.files[
         '20200827/402/CAM1_402-20200827012938-01.jpg']
     group: Group = file.group
     self.assertEqual('402', group.name)
     self.assertEqual(12, len(group.files))
     self.assertEqual('20200827/402/CAM1_402-20200827012938-01.jpg',
                      group.files[-1].name)
Exemple #2
0
 def test_GroupList_files(self):
     target = Metadata(reversed(ls_txt_lines))
     actual = target.groups['402'].files
     self.assertEqual(12, len(actual))
     self.assertEqual('20200827/402/CAM1_402-20200827012933-00.jpg',
                      actual[0].name)
     self.assertEqual('20200827/402/CAM1_402-20200827012934-01.jpg',
                      actual[3].name)
     self.assertEqual('20200827/402/CAM1_402-20200827012938-01.jpg',
                      actual[-1].name)
def main():
    port = 8090
    print('Starting server web v1.1 on port %d...' % port)
    args = sys.argv[1:]
    image_directory = './test_files/flat_files' if len(args) == 0 else args[0]

    refreshable_metadata = RefreshableCache(lambda: Metadata.from_folder(image_directory))
    api_dispatch = Dispatch().register(WebApi, 'API_')
    httpd = HTTPServer(('', port), partial(RequestHandler
                                           , refreshable_metadata=refreshable_metadata
                                           , api_dispatch=api_dispatch
                                           , image_directory=image_directory
                                           , directory='./wwwroot'))
    httpd.timeout = 10

    print('serving...')
    Thread(target=httpd.serve_forever).start()
    changed = wait_file_changes(__file__)
    httpd.shutdown()
    sys.exit(4 if changed else 0)
Exemple #4
0
 def test_files_by_name_should_match_group(self):
     target = Metadata(ls_txt_lines)
     file: File = target.files[
         '20200827/402/CAM1_402-20200827012938-01.jpg']
     self.assertEqual('20200827/402/CAM1_402-20200827012938-01.jpg',
                      file.name)
Exemple #5
0
 def test_days_names_bug1(self):
     target = Metadata(file_lines('test_files/ls_bug1.txt'))
     actual = target.days.names
     expected = sorted(list(set(actual)))
     self.assertEqual(expected, actual)
Exemple #6
0
 def test_days_names_with_folder(self):
     target = Metadata.from_folder('test_files/flat_files')
     self.assertEqual(['2020-08-25', '2020-08-27', '2020-08-30'],
                      target.days.names)
Exemple #7
0
 def test_with_folder(self):
     target = Metadata.from_folder('test_files/flat_files')
     self.assertEqual(['174', '500', '804', '805'], target.groups.names)
Exemple #8
0
 def test_group_time_str(self):
     target = Metadata(ls_txt_lines)
     self.assertEqual('01:29:33', target.groups['402'].time_str)
Exemple #9
0
 def test_days_groups(self):
     target = Metadata(ls_txt_lines)
     groups = target.days['2020-08-27'].groups
     self.assertEqual(['402', '403'], groups.names)
Exemple #10
0
 def test_days_string_dictionary(self):
     target = Metadata(ls_txt_lines)
     self.assertEqual('2020-08-27', target.days['2020-08-27'].date_str)
Exemple #11
0
 def test_days_names(self):
     target = Metadata(ls_txt_lines)
     self.assertEqual(['2020-08-26', '2020-08-27', '2020-08-30'],
                      target.days.names)
Exemple #12
0
 def test_days(self):
     target = Metadata(ls_txt_lines)
     self.assertEqual(3, len(target.days))
     self.assertEqual('2020-08-26', target.days[0].date_str)
     self.assertEqual('2020-08-27', target.days[1].date_str)
     self.assertEqual('2020-08-30', target.days[2].date_str)
Exemple #13
0
 def test_Groups_index(self):
     target = Metadata(reversed(ls_txt_lines))
     self.assertEqual('402', target.days['2020-08-27'].groups[0].name)
Exemple #14
0
 def test_GroupList(self):
     target = Metadata(ls_txt_lines)
     self.assertEqual(['01', '02', '355', '402', '403'],
                      target.groups.names)
     self.assertEqual(91, len(target.files))
Exemple #15
0
 def setUp(self) -> None:
     self.refreshable_metadata = RefreshableCache(
         lambda: Metadata(ls_txt_lines))
     self.target = WebApi(self.refreshable_metadata)