def test_isotime(self): dt1 = datetime.datetime(2001, 11, 10, 1, 2, 3) self.assertEqual("2001-11-10T01:02:03Z", utils.isotime(dt1)) iso_re = re.compile(r"^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z") now_iso = utils.isotime() self.assertTrue(iso_re.match(now_iso) is not None)
def test_isotime(self): dt1 = datetime.datetime(2001, 11, 10, 1, 2, 3) self.assertEqual('2001-11-10T01:02:03Z', utils.isotime(dt1)) iso_re = re.compile(r'^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z') now_iso = utils.isotime() self.assertTrue(iso_re.match(now_iso) is not None)
def test_results_filtering(self): self.cleanup() self.start_servers(**self.__dict__.copy()) api_port = self.api_port registry_port = self.registry_port # 1. Add some images _add_cmd = "bin/tank --port=%d add is_public=True" % api_port _add_args = [ "name=Name1 disk_format=vhd container_format=ovf foo=bar", "name=Name2 disk_format=ami container_format=ami foo=bar", "name=Name3 disk_format=vhd container_format=ovf foo=baz " "min_disk=7 min_ram=256", ] image_ids = [] for i, args in enumerate(_add_args): cmd = "%s %s" % (_add_cmd, args) exitcode, out, err = execute(cmd) self.assertEqual(0, exitcode) self.assertTrue(out.strip().find('Added new image with ID:') > -1) image_ids.append(out.strip().split(':')[1].strip()) _base_cmd = "bin/tank --port=%d" % api_port _index_cmd = "%s index -f" % (_base_cmd, ) # 2. Check name filter cmd = "name=Name2" exitcode, out, err = execute("%s %s" % (_index_cmd, cmd)) image_lines = out.split("\n")[2:-1] self.assertEqual(0, exitcode) self.assertEqual(1, len(image_lines)) self.assertEqual(image_lines[0].split()[0], image_ids[1]) # 3. Check disk_format filter cmd = "disk_format=vhd" exitcode, out, err = execute("%s %s" % (_index_cmd, cmd)) self.assertEqual(0, exitcode) image_lines = out.split("\n")[2:-1] self.assertEqual(2, len(image_lines)) self.assertEqual(image_lines[0].split()[0], image_ids[2]) self.assertEqual(image_lines[1].split()[0], image_ids[0]) # 4. Check container_format filter cmd = "container_format=ami" exitcode, out, err = execute("%s %s" % (_index_cmd, cmd)) self.assertEqual(0, exitcode) image_lines = out.split("\n")[2:-1] self.assertEqual(1, len(image_lines)) self.assertEqual(image_lines[0].split()[0], image_ids[1]) # 5. Check container_format filter cmd = "container_format=ami" exitcode, out, err = execute("%s %s" % (_index_cmd, cmd)) self.assertEqual(0, exitcode) image_lines = out.split("\n")[2:-1] self.assertEqual(1, len(image_lines)) self.assertEqual(image_lines[0].split()[0], image_ids[1]) # 6. Check status filter cmd = "status=killed" exitcode, out, err = execute("%s %s" % (_index_cmd, cmd)) self.assertEqual(0, exitcode) image_lines = out.split("\n")[2:-1] self.assertEqual(0, len(image_lines)) # 7. Check property filter cmd = "foo=bar" exitcode, out, err = execute("%s %s" % (_index_cmd, cmd)) self.assertEqual(0, exitcode) image_lines = out.split("\n")[2:-1] self.assertEqual(2, len(image_lines)) self.assertEqual(image_lines[0].split()[0], image_ids[1]) self.assertEqual(image_lines[1].split()[0], image_ids[0]) # 8. Check multiple filters cmd = "name=Name2 foo=bar" exitcode, out, err = execute("%s %s" % (_index_cmd, cmd)) self.assertEqual(0, exitcode) image_lines = out.split("\n")[2:-1] self.assertEqual(1, len(image_lines)) self.assertEqual(image_lines[0].split()[0], image_ids[1]) # 9. Check past changes-since dt1 = datetime.datetime.utcnow() - datetime.timedelta(1) iso1 = utils.isotime(dt1) cmd = "changes-since=%s" % iso1 exitcode, out, err = execute("%s %s" % (_index_cmd, cmd)) self.assertEqual(0, exitcode) image_lines = out.split("\n")[2:-1] self.assertEqual(3, len(image_lines)) self.assertEqual(image_lines[0].split()[0], image_ids[2]) self.assertEqual(image_lines[1].split()[0], image_ids[1]) self.assertEqual(image_lines[2].split()[0], image_ids[0]) # 10. Check future changes-since dt2 = datetime.datetime.utcnow() + datetime.timedelta(1) iso2 = utils.isotime(dt2) cmd = "changes-since=%s" % iso2 exitcode, out, err = execute("%s %s" % (_index_cmd, cmd)) self.assertEqual(0, exitcode) image_lines = out.split("\n")[2:-1] self.assertEqual(0, len(image_lines)) # 11. Ensure details call also respects filters _details_cmd = "%s details" % (_base_cmd, ) cmd = "foo=bar" exitcode, out, err = execute("%s %s" % (_details_cmd, cmd)) self.assertEqual(0, exitcode) image_lines = out.split("\n")[1:-1] self.assertEqual(26, len(image_lines)) self.assertEqual(image_lines[1].split()[1], image_ids[1]) self.assertEqual(image_lines[14].split()[1], image_ids[0]) # 12. Check min_ram filter cmd = "min_ram=256" exitcode, out, err = execute("%s %s" % (_details_cmd, cmd)) self.assertEqual(0, exitcode) image_lines = out.split("\n")[2:-1] self.assertEqual(12, len(image_lines)) self.assertEqual(image_lines[0].split()[1], image_ids[2]) # 13. Check min_disk filter cmd = "min_disk=7" exitcode, out, err = execute("%s %s" % (_details_cmd, cmd)) self.assertEqual(0, exitcode) image_lines = out.split("\n")[2:-1] self.assertEqual(12, len(image_lines)) self.assertEqual(image_lines[0].split()[1], image_ids[2]) self.stop_servers()
def test_results_filtering(self): self.cleanup() self.start_servers(**self.__dict__.copy()) api_port = self.api_port registry_port = self.registry_port # 1. Add some images _add_cmd = "bin/tank --port=%d add is_public=True" % api_port _add_args = [ "name=Name1 disk_format=vhd container_format=ovf foo=bar", "name=Name2 disk_format=ami container_format=ami foo=bar", "name=Name3 disk_format=vhd container_format=ovf foo=baz " "min_disk=7 min_ram=256", ] image_ids = [] for i, args in enumerate(_add_args): cmd = "%s %s" % (_add_cmd, args) exitcode, out, err = execute(cmd) self.assertEqual(0, exitcode) self.assertTrue(out.strip().find('Added new image with ID:') > -1) image_ids.append(out.strip().split(':')[1].strip()) _base_cmd = "bin/tank --port=%d" % api_port _index_cmd = "%s index -f" % (_base_cmd,) # 2. Check name filter cmd = "name=Name2" exitcode, out, err = execute("%s %s" % (_index_cmd, cmd)) image_lines = out.split("\n")[2:-1] self.assertEqual(0, exitcode) self.assertEqual(1, len(image_lines)) self.assertEqual(image_lines[0].split()[0], image_ids[1]) # 3. Check disk_format filter cmd = "disk_format=vhd" exitcode, out, err = execute("%s %s" % (_index_cmd, cmd)) self.assertEqual(0, exitcode) image_lines = out.split("\n")[2:-1] self.assertEqual(2, len(image_lines)) self.assertEqual(image_lines[0].split()[0], image_ids[2]) self.assertEqual(image_lines[1].split()[0], image_ids[0]) # 4. Check container_format filter cmd = "container_format=ami" exitcode, out, err = execute("%s %s" % (_index_cmd, cmd)) self.assertEqual(0, exitcode) image_lines = out.split("\n")[2:-1] self.assertEqual(1, len(image_lines)) self.assertEqual(image_lines[0].split()[0], image_ids[1]) # 5. Check container_format filter cmd = "container_format=ami" exitcode, out, err = execute("%s %s" % (_index_cmd, cmd)) self.assertEqual(0, exitcode) image_lines = out.split("\n")[2:-1] self.assertEqual(1, len(image_lines)) self.assertEqual(image_lines[0].split()[0], image_ids[1]) # 6. Check status filter cmd = "status=killed" exitcode, out, err = execute("%s %s" % (_index_cmd, cmd)) self.assertEqual(0, exitcode) image_lines = out.split("\n")[2:-1] self.assertEqual(0, len(image_lines)) # 7. Check property filter cmd = "foo=bar" exitcode, out, err = execute("%s %s" % (_index_cmd, cmd)) self.assertEqual(0, exitcode) image_lines = out.split("\n")[2:-1] self.assertEqual(2, len(image_lines)) self.assertEqual(image_lines[0].split()[0], image_ids[1]) self.assertEqual(image_lines[1].split()[0], image_ids[0]) # 8. Check multiple filters cmd = "name=Name2 foo=bar" exitcode, out, err = execute("%s %s" % (_index_cmd, cmd)) self.assertEqual(0, exitcode) image_lines = out.split("\n")[2:-1] self.assertEqual(1, len(image_lines)) self.assertEqual(image_lines[0].split()[0], image_ids[1]) # 9. Check past changes-since dt1 = datetime.datetime.utcnow() - datetime.timedelta(1) iso1 = utils.isotime(dt1) cmd = "changes-since=%s" % iso1 exitcode, out, err = execute("%s %s" % (_index_cmd, cmd)) self.assertEqual(0, exitcode) image_lines = out.split("\n")[2:-1] self.assertEqual(3, len(image_lines)) self.assertEqual(image_lines[0].split()[0], image_ids[2]) self.assertEqual(image_lines[1].split()[0], image_ids[1]) self.assertEqual(image_lines[2].split()[0], image_ids[0]) # 10. Check future changes-since dt2 = datetime.datetime.utcnow() + datetime.timedelta(1) iso2 = utils.isotime(dt2) cmd = "changes-since=%s" % iso2 exitcode, out, err = execute("%s %s" % (_index_cmd, cmd)) self.assertEqual(0, exitcode) image_lines = out.split("\n")[2:-1] self.assertEqual(0, len(image_lines)) # 11. Ensure details call also respects filters _details_cmd = "%s details" % (_base_cmd,) cmd = "foo=bar" exitcode, out, err = execute("%s %s" % (_details_cmd, cmd)) self.assertEqual(0, exitcode) image_lines = out.split("\n")[1:-1] self.assertEqual(26, len(image_lines)) self.assertEqual(image_lines[1].split()[1], image_ids[1]) self.assertEqual(image_lines[14].split()[1], image_ids[0]) # 12. Check min_ram filter cmd = "min_ram=256" exitcode, out, err = execute("%s %s" % (_details_cmd, cmd)) self.assertEqual(0, exitcode) image_lines = out.split("\n")[2:-1] self.assertEqual(12, len(image_lines)) self.assertEqual(image_lines[0].split()[1], image_ids[2]) # 13. Check min_disk filter cmd = "min_disk=7" exitcode, out, err = execute("%s %s" % (_details_cmd, cmd)) self.assertEqual(0, exitcode) image_lines = out.split("\n")[2:-1] self.assertEqual(12, len(image_lines)) self.assertEqual(image_lines[0].split()[1], image_ids[2]) self.stop_servers()