class TestZoneSetDelete(unittest.TestCase): def __init__(self, testName, sw): super().__init__(testName) self.switch = sw def setUp(self) -> None: log.debug(self.switch.version) log.debug(self.switch.ipaddr) self.vsandb = self.switch.vsans while True: self.id = get_random_id() if self.id not in self.vsandb.keys(): break self.v = Vsan(switch=self.switch, id=self.id) self.v.create() self.zoneset = ZoneSet(self.switch, "test_zoneset", self.id) def test_delete(self): self.zoneset.create() self.assertEqual("test_zoneset", self.zoneset.name) self.zoneset.delete() # TODO: Was working in 8.4.2a not in 8.4.2b (CSCvv59174) # with self.assertRaises(CLIError) as e: # self.zoneset.name # self.assertIn("Zoneset not present", str(e.exception)) self.assertIsNone(self.zoneset.name) # def test_delete_nonexisting(self): # # TODO: Was working in 8.4.2a not in 8.4.2b (CSCvv59174) # with self.assertRaises(CLIError) as e: # self.zoneset.delete() # self.assertIn("Zoneset not present", str(e.exception)) def tearDown(self) -> None: self.v.delete()
class TestZoneSetAttrName(unittest.TestCase): def __init__(self, testName, sw): super().__init__(testName) self.switch = sw def setUp(self) -> None: log.debug(self.switch.version) log.debug(self.switch.ipaddr) self.vsandb = self.switch.vsans while True: self.id = get_random_id() if self.id not in self.vsandb.keys(): break self.v = Vsan(switch=self.switch, id=self.id) self.v.create() self.zoneset = ZoneSet(self.switch, "test_zoneset", self.id) def test_name_read(self): self.zoneset.create() self.assertEqual("test_zoneset", self.zoneset.name) def test_name_read_nonexisting(self): with self.assertRaises(CLIError) as c: self.zoneset.name self.assertIn("Zoneset not present", str(c.exception)) def test_name_write_error(self): with self.assertRaises(AttributeError) as e: self.zoneset.name = "asdf" self.assertEqual("can't set attribute", str(e.exception)) def tearDown(self) -> None: self.v.delete()
def test_create_nonexistingvsan(self): self.v.delete() self.assertIsNone(self.v.id) z = ZoneSet(self.switch, "test_zoneset", self.id) with self.assertRaises(CLIError) as e: z.create() self.assertIn("VSAN " + str(self.id) + " is not configured", str(e.exception))
def test_name_write_error(self): v = Vsan(self.switch, self.vsan_id[2]) v.create() z = ZoneSet(self.switch, v, self.zoneset_name[2]) with self.assertRaises(AttributeError) as e: z.name = "asdf" self.assertEqual('can\'t set attribute', str(e.exception)) v.delete()
def test_create_name_invalid(self): i = self.vsan_id[2] v = Vsan(self.switch, i) v.create() invalid = self.zoneset_name_invalid z = ZoneSet(self.switch, v, invalid) with self.assertRaises(CLIError) as e: z.create() self.assertEqual("The command \" zoneset name "+str(invalid)+" vsan "+str(i)+" \" gave the error \" Illegal character present in the name \".",str(e.exception)) v.delete()
def test_add_members_typeerror(self): v = Vsan(self.switch, self.vsan_id[3]) v.create() zone = Zone(self.switch, v, self.zone_name[5]) zone.create() zoneset = ZoneSet(self.switch, v, self.zoneset_name[4]) with self.assertRaises(AttributeError) as e: zoneset.add_members(zone.name) self.assertEqual("'str' object has no attribute 'name'",str(e.exception)) v.delete()
def test_add_members_nonexisting(self): v = Vsan(self.switch, self.vsan_id[0]) v.create() zonename = self.zone_name[0] zone = Zone(self.switch, v, zonename) zoneset = ZoneSet(self.switch, v, self.zoneset_name[0]) with self.assertRaises(ZoneNotPresent) as e: zoneset.add_members([zone]) self.assertEqual("ZoneNotPresent: The given zoneset member '"+str(zonename)+"' is not present in the switch. Please create the zone first.",str(e.exception)) v.delete()
def test_create_name_beyondmax(self): name = "zo123456789123456789123456789123456789123456789123456789123456789" z = ZoneSet(self.switch, name, self.id) with self.assertRaises(CLIError) as e: z.create() self.assertEqual( 'The command " zoneset name ' + name + " vsan " + str(self.id) + ' " gave the error " % String exceeded max length of (64) ".', str(e.exception), )
def test_create_name_invalidfirstchar(self): i = self.vsan_id[3] v = Vsan(self.switch, i) v.create() invalid = self.zoneset_name_invalidfirstchar z = ZoneSet(self.switch, v, invalid) with self.assertRaises(CLIError) as e: z.create() self.assertEqual("The command \" zoneset name "+str(invalid)+" vsan "+str(i)+" \" gave the error \" Illegal first character (name must start with a letter) \".",str(e.exception)) v.delete()
def test_create_name_invalidfirstchar(self): invalid = "1zoneset" z = ZoneSet(self.switch, invalid, self.id) with self.assertRaises(CLIError) as e: z.create() self.assertEqual( 'The command " zoneset name ' + str(invalid) + " vsan " + str(self.id) + ' " gave the error " Illegal first character (name must start with a letter) ".', str(e.exception), )
def test_create_name_beyondmax(self): i = self.vsan_id[4] v = Vsan(self.switch, i) v.create() name = self.zoneset_name_beyondmax z = ZoneSet(self.switch, v, name) with self.assertRaises(CLIError) as e: z.create() self.maxDiff = 1000 self.assertEqual("The command \" zoneset name " + name + " vsan "+str(i)+" \" gave the error \" % String exceeded max length of (64) \".",str(e.exception)) v.delete()
def setUp(self) -> None: log.debug(self.switch.version) log.debug(self.switch.ipaddr) self.vsandb = self.switch.vsans while True: self.id = get_random_id() if self.id not in self.vsandb.keys(): break self.v = Vsan(switch=self.switch, id=self.id) self.v.create() self.zoneset = ZoneSet(self.switch, "test_zoneset", self.id)
def test_create_name_invalid(self): invalid = "zoneset1*!" z = ZoneSet(self.switch, invalid, self.id) with self.assertRaises(CLIError) as e: z.create() self.assertEqual( 'The command " zoneset name ' + str(invalid) + " vsan " + str(self.id) + ' " gave the error " Illegal character present in the name ".', str(e.exception), )
def test_delete_nonexisting(self): i = self.vsan_id[1] v = Vsan(self.switch, i) v.create() zonesetname = self.zoneset_name[1] z = ZoneSet(self.switch, v, zonesetname) with self.assertRaises(CLIError) as e: z.delete() self.assertEqual( 'The command " no zoneset name ' + str(zonesetname) + ' vsan ' + str(i) + ' " gave the error " Zoneset not present ".', str(e.exception)) v.delete()
def test_active_members_read(self): self.skipTest("not a correct test case Needs to be fixed") zoneset = ZoneSet(self.switch, "test_zoneset", self.id) zoneset.create() members = [{"fcid": "0x123456"}] self.z.add_members(members) zoneset.add_members([self.z]) zoneset.activate(True) if zoneset.is_active(): self.assertEqual(members, self.z.active_members)
def test_activedb_zone_count_read(self): self.z.create() zoneset = ZoneSet(self.switch, "test_zoneset", self.id) zoneset.create() self.z.add_members([{"fcid": "0x123456"}]) zoneset.add_members([self.z]) zoneset.activate(True) if zoneset.is_active(): self.assertIsNotNone(self.z.activedb_zone_count) else: self.assertIsNone(self.z.activedb_zone_count)
def test_activate_multiple(self): self.zone.add_members(self.zone_members) self.zoneset.add_members([self.zone]) self.zoneset.activate(True) self.assertTrue(self.zoneset.is_active()) zoneset1 = ZoneSet(self.switch, "test_zoneset_2", self.id) zoneset1.create() zoneset1.add_members([self.zone]) zoneset1.activate(True) self.assertTrue(zoneset1.is_active()) self.assertFalse(self.zoneset.is_active())
def test_nonexistingvsan(self): i = self.vsan_id[0] v = Vsan(self.switch, i) if v.id is not None: v.delete() with self.assertRaises(VsanNotPresent) as e: z = ZoneSet(self.switch, v, self.zoneset_name[0]) self.assertEqual("VsanNotPresent: Vsan "+str(i)+" is not present on the switch.",str(e.exception))
def test_active_zonesets_read(self): # self.skipTest("need to check") zone = Zone(self.switch, "test_zone", self.id) zone.create() zoneset = ZoneSet(self.switch, "test_zoneset", self.id) zoneset.create() zone.add_members([{"fcid": "0x123456"}]) zoneset.add_members([zone]) zoneset.activate(True) active_zonesets = self.switch.active_zonesets self.assertIn(self.v.id, list(active_zonesets.keys()))
class TestZoneSetAttrMembers(unittest.TestCase): def __init__(self, testName, sw): super().__init__(testName) self.switch = sw def setUp(self) -> None: log.debug(self.switch.version) log.debug(self.switch.ipaddr) self.vsandb = self.switch.vsans while True: self.id = get_random_id() if self.id not in self.vsandb.keys(): break self.v = Vsan(switch=self.switch, id=self.id) self.v.create() self.zoneset = ZoneSet(self.switch, "test_zoneset", self.id) self.zoneset.create() def test_members_read(self): zone1 = Zone(self.switch, "test_zone1", self.id) zone1.create() zone2 = Zone(self.switch, "test_zone2", self.id) zone2.create() members = [zone1, zone2] self.zoneset.add_members(members) self.assertEqual( [zone.name for zone in members], list(self.zoneset.members.keys()) ) def test_members_read_nonexisting(self): self.assertEqual({}, self.zoneset.members) def test_members_write_error(self): with self.assertRaises(AttributeError) as e: self.zoneset.members = "asdf" self.assertEqual("can't set attribute", str(e.exception)) def tearDown(self) -> None: self.v.delete()
def test_delete(self): v = Vsan(self.switch, self.vsan_id[0]) v.create() z = ZoneSet(self.switch, v, self.zoneset_name[0]) z.create() z.delete() self.assertIsNone(z.name) v.delete()
def test_create_same_name(self): v7 = Vsan(self.switch, self.vsan_id[7]) v7.create() v8 = Vsan(self.switch, self.vsan_id[8]) v8.create() name = self.zoneset_name[2] z7 = ZoneSet(self.switch, v7, name) z7.create() self.assertEqual(name, z7.name) z8 = ZoneSet(self.switch, v8, name) z8.create() self.assertEqual(name, z8.name) v7.delete() v8.delete()
def test_remove_members(self): v = Vsan(self.switch, self.vsan_id[1]) v.create() zone1 = Zone(self.switch, v, self.zone_name[1]) zone2 = Zone(self.switch, v, self.zone_name[2]) zone1.create() zone2.create() zoneset = ZoneSet(self.switch, v, self.zoneset_name[1]) zoneset.add_members([zone1, zone2]) self.assertIsNotNone(zoneset.members) zoneset.remove_members([zone1, zone2]) self.assertIsNone(zoneset.members) zoneset.delete() zone1.delete() zone2.delete() v.delete()
def test_add_members_samezone(self): v = Vsan(self.switch, self.vsan_id[2]) v.create() zone1 = Zone(self.switch, v, self.zone_name[3]) zone2 = Zone(self.switch, v, self.zone_name[4]) zone1.create() zone2.create() zoneset1 = ZoneSet(self.switch, v, self.zoneset_name[2]) zoneset2 = ZoneSet(self.switch, v, self.zoneset_name[3]) members = [zone1, zone2] zoneset1.add_members(members) zoneset2.add_members(members) self.assertEqual([zone.name for zone in members],list(zoneset1.members.keys())) self.assertEqual([zone.name for zone in members],list(zoneset2.members.keys()))
def test_vsan_read(self): i = self.vsan_id[0] v = Vsan(self.switch, i) v.create() z = ZoneSet(self.switch, v, self.zoneset_name[0]) z.create() self.assertEqual(i, z.vsan.id) z.delete() v.delete()
def test_name_read(self): v = Vsan(self.switch, self.vsan_id[0]) v.create() name = self.zoneset_name[0] z = ZoneSet(self.switch, v, name) z.create() self.assertEqual(name, z.name) z.delete() v.delete()
def test_create_max(self): i = self.vsan_id[6] v = Vsan(self.switch, i) v.create() # success case for i in self.zoneset_max_range: name = "zone"+str(i) z = ZoneSet(self.switch, v, name) z.create() self.assertEqual(name, z.name) # failure case name = "zs" z = ZoneSet(self.switch, v, name) with self.assertRaises(CLIError) as e: z.create() self.assertEqual('The command " zoneset name '+str(name)+' vsan '+str(i)+' " gave the error " cannot create the zoneset; maximum possible number of zonesets is already configured ".',str(e.exception)) v.delete()
class TestZoneSetAddMembers(unittest.TestCase): def __init__(self, testName, sw): super().__init__(testName) self.switch = sw def setUp(self) -> None: log.debug(self.switch.version) log.debug(self.switch.ipaddr) self.vsandb = self.switch.vsans while True: self.id = get_random_id() if self.id not in self.vsandb.keys(): break self.v = Vsan(switch=self.switch, id=self.id) self.v.create() self.zoneset = ZoneSet(self.switch, "test_zoneset", self.id) self.zoneset.create() def test_add_members_nonexisting(self): zone = Zone(self.switch, "test_zone", self.id) with self.assertRaises(CLIError) as e: self.zoneset.add_members([zone]) self.assertIn("Zone not present", str(e.exception)) def test_add_members(self): zone1 = Zone(self.switch, "test_zone1", self.id) zone1.create() zone2 = Zone(self.switch, "test_zone2", self.id) zone2.create() members = [zone1, zone2] self.zoneset.add_members(members) self.assertEqual([zone.name for zone in members], list(self.zoneset.members.keys())) def test_add_members_typeerror(self): with self.assertRaises(AttributeError) as e: self.zoneset.add_members("test_zone") self.assertEqual("'str' object has no attribute 'name'", str(e.exception)) def tearDown(self) -> None: self.v.delete()
class TestZoneSetRemoveMembers(unittest.TestCase): def __init__(self, testName, sw): super().__init__(testName) self.switch = sw def setUp(self) -> None: log.debug(self.switch.version) log.debug(self.switch.ipaddr) self.vsandb = self.switch.vsans while True: self.id = get_random_id() if self.id not in self.vsandb.keys(): break self.v = Vsan(switch=self.switch, id=self.id) self.v.create() self.zone = Zone(self.switch, "test_zone", self.id) self.zone.create() self.zoneset = ZoneSet(self.switch, "test_zoneset", self.id) self.zoneset.create() def test_remove_members_nonexisting(self): self.assertEqual({}, self.zoneset.members) with self.assertRaises(CLIError) as e: self.zoneset.remove_members([self.zone]) self.assertEqual( 'The command " zoneset name test_zoneset vsan ' + str(self.id) + ' ; no member test_zone " gave the error " Zone not present ".', str(e.exception), ) def test_remove_members(self): zone1 = self.zone zone2 = Zone(self.switch, "test_zone2", self.id) zone2.create() self.zoneset.add_members([zone1, zone2]) self.assertIsNotNone(self.zoneset.members) self.zoneset.remove_members([zone1, zone2]) self.assertEqual({}, self.zoneset.members) def tearDown(self) -> None: self.v.delete()
def test_remove_members_nonexisting(self): i = self.vsan_id[0] v = Vsan(self.switch, i) v.create() zone = Zone(self.switch, v, self.zone_name[0]) zone.create() zoneset = ZoneSet(self.switch, v, self.zoneset_name[0]) self.assertIsNone(zoneset.members) with self.assertRaises(CLIError) as e: zoneset.remove_members([zone]) self.assertEqual('The command " zoneset name '+str(zoneset.name)+' vsan '+str(i)+' ; no member '+str(zone.name)+' " gave the error " Zone not present ".',str(e.exception)) zone.delete() zoneset.delete() v.delete()