def case_get_by_admins(self, refresh_db_before): """ Get server row with admins keyword.""" server_name = "TestServer" server_second_name = "TestServerTwo" server_status = "TestStatus" server_type = "TestType" ServerStatusOp.add(server_status) ServerTypeOp.add(server_type) admins = ["Admin One", "Admin Two", "Admin Three"] for admin in admins: AdminOp.add(admin) srv_one = ServerOp.add(server_name, server_status, server_type, admins=[admins[0], admins[1]]) srv_two = ServerOp.add(server_second_name, server_status, server_type, admins=admins) get_lonely = ServerOp.get(admins=[admins[2]]) self.assertTrue(len(get_lonely) is 1) self.assertEqual(get_lonely[0], srv_two) self.assertEqual(len(get_lonely[0].admins), len(admins)) get_all = ServerOp.get(admins=[admins[0]]) self.assertTrue(len(get_all) is 2)
def case_get_by_tags(self, refresh_db_before): """ Get server row with tags keyword.""" server_name = "TestServer" server_second_name = "TestServerTwo" server_status = "TestStatus" server_type = "TestType" ServerStatusOp.add(server_status) ServerTypeOp.add(server_type) tags = ["tag one", "tag two", "tag three"] for tag in tags: TagOp.add(tag) srv_one = ServerOp.add(server_name, server_status, server_type, tags=[tags[0], tags[1]]) srv_two = ServerOp.add(server_second_name, server_status, server_type, tags=tags) get_lonely = ServerOp.get(tags=[tags[2]]) self.assertTrue(len(get_lonely) is 1) self.assertEqual(get_lonely[0], srv_two) self.assertEqual(len(get_lonely[0].tags), len(tags)) get_all = ServerOp.get(tags=[tags[0]]) self.assertTrue(len(get_all) is 2)
def case_update_all(self, refresh_db_before): """ Update all fields.""" server_name = "TestServer" server_name_two = "TestServerTwo" ServerStatusOp.add("Status") ServerStatusOp.add("StatusTwo") ServerTypeOp.add("TypeOne") ServerTypeOp.add("TypeTwo") desc_one = "Desc one" desc_two = "Desc two" ips_one = IpOp.add("11.11.11.11") ips_two = IpOp.add("22.22.22.22") tag_one = TagOp.add("tag one") tag_two = TagOp.add("tag two") admin_one = AdminOp.add("Admin One") admin_two = AdminOp.add("Admin Two") srv = ServerOp.add( server_name, "Status", "TypeOne", description=desc_one, ips=["11.11.11.11"], tags=["tag one"], admins=["Admin One"], ) get_before_update = ServerOp.get() self.assertTrue(len(get_before_update) is 1) self.assertEqual(get_before_update[0].id, 1) self.assertEqual(get_before_update[0].name, server_name) self.assertEqual(get_before_update[0].description, desc_one) self.assertEqual(get_before_update[0].status.name, "Status") self.assertEqual(get_before_update[0].type.name, "TypeOne") self.assertEqual(get_before_update[0].ips, [ips_one]) self.assertEqual(get_before_update[0].tags, [tag_one]) self.assertEqual(get_before_update[0].admins, [admin_one]) ServerOp.update( srv, name=server_name_two, description=desc_two, srv_status="StatusTwo", srv_type="TypeTwo", ips=["22.22.22.22"], tags=["tag two"], admins=["Admin Two"], ) get_srv = ServerOp.get() self.assertTrue(len(get_srv) is 1) self.assertEqual(get_srv[0].id, 1) self.assertEqual(get_srv[0].name, server_name_two) self.assertEqual(get_srv[0].description, desc_two) self.assertEqual(get_srv[0].status.name, "StatusTwo") self.assertEqual(get_srv[0].type.name, "TypeTwo") self.assertEqual(get_srv[0].ips, [ips_two]) self.assertEqual(get_srv[0].tags, [tag_two]) self.assertEqual(get_srv[0].admins, [admin_two])
def case_delete(self, refresh_db_before): """ Delete record.""" server_name = "TestServer" ServerStatusOp.add("Status") ServerTypeOp.add("TypeOne") ServerOp.add(server_name, "Status", "TypeOne") get_srv = ServerOp.get() self.assertTrue(len(get_srv) is 1) self.assertEqual(get_srv[0].name, server_name) ServerOp.delete(get_srv[0]) get_empty = ServerOp.get() self.assertFalse(get_empty)
def case_add_with_ips(self, refresh_db_before): """ Create new Server row with ips many-to-many relation.""" server_name = "TestServer" server_status = "TestStatus" server_type = "TestType" ips = ["11.11.11.11", "22.22.22.22", "33.33.33.33"] ServerStatusOp.add(server_status) ServerTypeOp.add(server_type) for ip in ips: IpOp.add(ip) new_server = ServerOp.add(server_name, server_status, server_type, ips=ips) get_servers = ServerOp.get() self.assertTrue(len(get_servers) is 1) self.assertEqual(get_servers[0].description, None) self.assertEqual(get_servers[0].id, 1) self.assertEqual(get_servers[0].name, server_name) self.assertEqual(get_servers[0], new_server) for srv_ip, exp_ip in zip(get_servers[0].ips, ips): self.assertEqual(srv_ip.address, exp_ip)
def test_get_by_ip( self, mock_val_id, mock_val_name, mock_res_status, mock_res_type, mock_res_ip, mock_res_tag, mock_res_adm, mock_server, ): """ Assumptions: - used filter: ip """ mock_ip_obj = mock.MagicMock(name="MockIpObj") mock_res_ip.return_value = mock_ip_obj mock_srv = mock.MagicMock(name="MockSrv") mock_srv.ips = [mock_ip_obj] mock_server.query.filter_by().all.return_value = [mock_srv] result = ServerOp.get(ip="11.11.11.11") self.assertEqual([mock_srv], result) self.assertFalse(mock_val_id.called) self.assertFalse(mock_val_name.called) self.assertFalse(mock_res_status.called) self.assertFalse(mock_res_type.called) self.assertTrue(mock_res_ip.called) self.assertFalse(mock_res_tag.called) self.assertFalse(mock_res_adm.called)
def get_by_all( self, mock_val_id, mock_val_name, mock_res_status, mock_res_type, mock_res_ip, mock_res_tag, mock_res_adm, mock_server, ): """ Assumptions: - used all filters """ exp_mock = mock_server.query.filter_by().all() result = ServerOp.get( id=1, name="Name", srv_status="Status", srv_type="Type", ip="11.11.11.11", tags=["tag"], admins=["admin"], ) self.assertEqual(exp_mock, result) self.assertTrue(mock_val_id.called) self.assertTrue(mock_val_name.called) self.assertTrue(mock_res_status.called) self.assertTrue(mock_res_type.called) self.assertTrue(mock_res_ip.called) self.assertTrue(mock_res_tag.called) self.assertTrue(mock_res_adm.called)
def test_get_by_admins( self, mock_val_id, mock_val_name, mock_res_status, mock_res_type, mock_res_ip, mock_res_tag, mock_res_adm, mock_server, ): """ Assumptions: - used filter: admins """ mock_adm_obj = mock.MagicMock(name="MockAdmObj") mock_res_adm.return_value = mock_adm_obj mock_srv = mock.MagicMock(name="MockSrv") mock_srv.admins = [mock_adm_obj] mock_server.query.filter_by().all.return_value = [mock_srv] result = ServerOp.get(admins=["admin"]) self.assertEqual([mock_srv], result) self.assertFalse(mock_val_id.called) self.assertFalse(mock_val_name.called) self.assertFalse(mock_res_status.called) self.assertFalse(mock_res_type.called) self.assertFalse(mock_res_ip.called) self.assertFalse(mock_res_tag.called) self.assertTrue(mock_res_adm.called)
def case_get_by_ip(self, refresh_db_before): """ Get server row with ip keyword.""" server_name = "TestServer" server_second_name = "TestServerTwo" server_status = "TestStatus" server_type = "TestType" ServerStatusOp.add(server_status) ServerTypeOp.add(server_type) ips = ["11.11.11.11", "22.22.22.22"] for ip in ips: IpOp.add(ip) srv_one = ServerOp.add(server_name, server_status, server_type, ips=[ips[0]]) srv_two = ServerOp.add(server_second_name, server_status, server_type, ips=[ips[1]]) get_first_ip = ServerOp.get(ip=ips[0]) self.assertTrue(len(get_first_ip) is 1) self.assertEqual(get_first_ip[0], srv_one) self.assertNotEqual(get_first_ip[0], srv_two) self.assertTrue(len(get_first_ip[0].ips) is 1) self.assertEqual(get_first_ip[0].ips[0].address, ips[0])
def case_add_with_admins(self, refresh_db_before): """ Create new Server row with admins many-to-many relation.""" server_name = "TestServer" server_status = "TestStatus" server_type = "TestType" admins = ["Admin One", "Admin Two"] ServerStatusOp.add(server_status) ServerTypeOp.add(server_type) for admin in admins: AdminOp.add(admin) new_server = ServerOp.add(server_name, server_status, server_type, admins=admins) get_servers = ServerOp.get() self.assertTrue(len(get_servers) is 1) self.assertEqual(get_servers[0].description, None) self.assertEqual(get_servers[0].id, 1) self.assertEqual(get_servers[0].name, server_name) self.assertEqual(get_servers[0], new_server) for admin, exp_name in zip(get_servers[0].admins, admins): self.assertEqual(admin.name, exp_name)
def case_add_with_tags(self, refresh_db_before): """ Create new Server row with tags many-to-many relation.""" server_name = "TestServer" server_status = "TestStatus" server_type = "TestType" tags = ["tag one", "tag two", "tag three"] ServerStatusOp.add(server_status) ServerTypeOp.add(server_type) for tag in tags: TagOp.add(tag) new_server = ServerOp.add(server_name, server_status, server_type, tags=tags) get_servers = ServerOp.get() self.assertTrue(len(get_servers) is 1) self.assertEqual(get_servers[0].description, None) self.assertEqual(get_servers[0].id, 1) self.assertEqual(get_servers[0].name, server_name) self.assertEqual(get_servers[0], new_server) for tag, exp_name in zip(get_servers[0].tags, tags): self.assertEqual(tag.name, exp_name)
def test_get_by_srv_type( self, mock_val_id, mock_val_name, mock_res_status, mock_res_type, mock_res_ip, mock_res_tag, mock_res_adm, mock_server, ): """ Assumptions: - used filter: srv_type """ exp_mock = mock_server.query.filter_by().all() result = ServerOp.get(srv_type="Type") self.assertEqual(exp_mock, result) self.assertFalse(mock_val_id.called) self.assertFalse(mock_val_name.called) self.assertFalse(mock_res_status.called) self.assertTrue(mock_res_type.called) self.assertFalse(mock_res_ip.called) self.assertFalse(mock_res_tag.called) self.assertFalse(mock_res_adm.called)
def case_update_name(self, refresh_db_before): """ Update server name.""" server_name = "TestServer" server_second_name = "TestServerTwo" ServerStatusOp.add("Status") ServerTypeOp.add("TypeOne") srv = ServerOp.add(server_name, "Status", "TypeOne") get_before_update = ServerOp.get(name=server_name) self.assertTrue(len(get_before_update) is 1) self.assertEqual(get_before_update[0].id, 1) ServerOp.update(srv, name=server_second_name) get_srv = ServerOp.get(name=server_second_name) self.assertTrue(len(get_srv) is 1) self.assertEqual(get_srv[0].id, 1)
def case_update_srv_type(self, refresh_db_before): """ Update server type.""" server_name = "TestServer" ServerStatusOp.add("Status") ServerTypeOp.add("TypeOne") ServerTypeOp.add("TypeTwo") srv = ServerOp.add(server_name, "Status", "TypeOne") get_before_update = ServerOp.get() self.assertTrue(len(get_before_update) is 1) self.assertEqual(get_before_update[0].id, 1) self.assertEqual(get_before_update[0].type.name, "TypeOne") ServerOp.update(srv, srv_type="TypeTwo") get_srv = ServerOp.get() self.assertTrue(len(get_srv) is 1) self.assertEqual(get_srv[0].id, 1) self.assertEqual(get_srv[0].type.name, "TypeTwo")
def case_update_ips(self, refresh_db_before): """ Update ip addresses. """ server_name = "TestServer" ServerStatusOp.add("Status") ServerTypeOp.add("Type") ips_one = IpOp.add("11.11.11.11") ips_two = IpOp.add("22.22.22.22") srv = ServerOp.add(server_name, "Status", "Type", ips=["11.11.11.11"]) get_before_update = ServerOp.get() self.assertTrue(len(get_before_update) is 1) self.assertEqual(get_before_update[0].id, 1) self.assertEqual(get_before_update[0].ips, [ips_one]) ServerOp.update(srv, ips=["22.22.22.22"]) get_srv = ServerOp.get() self.assertTrue(len(get_srv) is 1) self.assertEqual(get_srv[0].id, 1) self.assertEqual(get_srv[0].ips, [ips_two])
def case_update_description(self, refresh_db_before): """ Update server description.""" server_name = "TestServer" ServerStatusOp.add("Status") ServerTypeOp.add("TypeOne") desc_one = "Desc one" desc_two = "Desc two" srv = ServerOp.add(server_name, "Status", "TypeOne", desc_one) get_before_update = ServerOp.get() self.assertTrue(len(get_before_update) is 1) self.assertEqual(get_before_update[0].id, 1) self.assertEqual(get_before_update[0].description, desc_one) ServerOp.update(srv, description=desc_two) get_srv = ServerOp.get() self.assertTrue(len(get_srv) is 1) self.assertEqual(get_srv[0].id, 1) self.assertEqual(get_srv[0].description, desc_two)
def case_update_tags(self, refresh_db_before): """ Update tags.""" server_name = "TestServer" ServerStatusOp.add("Status") ServerTypeOp.add("Type") tag_one = TagOp.add("tag one") tag_two = TagOp.add("tag two") srv = ServerOp.add(server_name, "Status", "Type", tags=["tag one"]) get_before_update = ServerOp.get() self.assertTrue(len(get_before_update) is 1) self.assertEqual(get_before_update[0].id, 1) self.assertEqual(get_before_update[0].tags, [tag_one]) ServerOp.update(srv, tags=["tag two"]) get_srv = ServerOp.get() self.assertTrue(len(get_srv) is 1) self.assertEqual(get_srv[0].id, 1) self.assertEqual(get_srv[0].tags, [tag_two])
def case_update_admins(self, refresh_db_before): """ Update admins.""" server_name = "TestServer" ServerStatusOp.add("Status") ServerTypeOp.add("Type") admin_one = AdminOp.add("Admin One") admin_two = AdminOp.add("Admin Two") srv = ServerOp.add(server_name, "Status", "Type", admins=["Admin One"]) get_before_update = ServerOp.get() self.assertTrue(len(get_before_update) is 1) self.assertEqual(get_before_update[0].id, 1) self.assertEqual(get_before_update[0].admins, [admin_one]) ServerOp.update(srv, admins=["Admin Two"]) get_srv = ServerOp.get() self.assertTrue(len(get_srv) is 1) self.assertEqual(get_srv[0].id, 1) self.assertEqual(get_srv[0].admins, [admin_two])
def case_get_without_filters(self, refresh_db_before): """ Get server rows without any filters.""" server_name = "TestServer" server_second_name = "TestServerTwo" ServerStatusOp.add("Status") ServerTypeOp.add("TypeOne") ServerTypeOp.add("TypeTwo") srv_one = ServerOp.add(server_name, "Status", "TypeOne") srv_two = ServerOp.add(server_second_name, "Status", "TypeTwo") get_all = ServerOp.get() self.assertTrue(len(get_all) is 2) self.assertEqual(get_all[0], srv_one) self.assertEqual(get_all[1], srv_two)
def case_get_by_srv_type(self, refresh_db_before): """ Get server row with srv_type keyword.""" server_name = "TestServer" server_second_name = "TestServerTwo" ServerStatusOp.add("Status") ServerTypeOp.add("TypeOne") ServerTypeOp.add("TypeTwo") srv_one = ServerOp.add(server_name, "Status", "TypeOne") srv_two = ServerOp.add(server_second_name, "Status", "TypeTwo") get_first_type = ServerOp.get(srv_type="TypeOne") self.assertTrue(len(get_first_type) is 1) self.assertEqual(get_first_type[0].id, 1) self.assertEqual(get_first_type[0], srv_one) self.assertNotEqual(get_first_type[0], srv_two)
def case_add_without_description(self, refresh_db_before): """ Create new Server row without description field.""" server_name = "TestServer" ServerStatusOp.add("TestStatus") ServerTypeOp.add("TestType") new_server = ServerOp.add(server_name, "TestStatus", "TestType") get_servers = ServerOp.get() self.assertTrue(len(get_servers) is 1) self.assertEqual(get_servers[0].description, None) self.assertEqual(get_servers[0].id, 1) self.assertEqual(get_servers[0].type_id, 1) self.assertEqual(get_servers[0].status_id, 1) self.assertEqual(get_servers[0].name, server_name) self.assertEqual(get_servers[0], new_server)
def case_get_by_name(self, refresh_db_before): """ Get server row with name keyword.""" server_name = "TestServer" server_second_name = "TestServerTwo" ServerStatusOp.add("TestStatus") ServerTypeOp.add("TestType") new_server = ServerOp.add(server_name, "TestStatus", "TestType") new_second_server = ServerOp.add(server_second_name, "TestStatus", "TestType") get_second_server = ServerOp.get(name=server_second_name) self.assertTrue(len(get_second_server) is 1) self.assertEqual(get_second_server[0], new_second_server) self.assertEqual(get_second_server[0].id, 2) self.assertNotEqual(get_second_server[0], new_server)
def case_get_by_all(self, refresh_db_before): """ Get server row with both srv_status srv_type keywords. """ server_name = "TestServer" server_second_name = "TestServerTwo" server_third_name = "TestServerThree" server_fourth_name = "TestServerFour" ServerStatusOp.add("StatusOne") ServerStatusOp.add("StatusTwo") ServerTypeOp.add("TypeOne") ServerTypeOp.add("TypeTwo") IpOp.add("11.11.11.11") IpOp.add("22.22.22.22") TagOp.add("Tag one") TagOp.add("Tag two") AdminOp.add("Admin One") AdminOp.add("Admin Two") srv_one = ServerOp.add( server_name, "StatusOne", "TypeOne", ips=["11.11.11.11"], tags=["Tag one"], admins=["Admin One"], ) ServerOp.add( server_second_name, "StatusTwo", "TypeTwo", ips=["22.22.22.22"], tags=["Tag two"], admins=["Admin Two"], ) ServerOp.add( server_third_name, "StatusOne", "TypeTwo", ips=["22.22.22.22"], tags=["Tag two"], admins=["Admin Two"], ) srv_four = ServerOp.add( server_fourth_name, "StatusOne", "TypeOne", ips=["11.11.11.11"], tags=["Tag one"], admins=["Admin One"], ) get_by_all = ServerOp.get( srv_status="StatusOne", srv_type="TypeOne", ip="11.11.11.11", tags=["Tag one"], admins=["Admin One"], ) self.assertTrue(len(get_by_all) is 2) self.assertEqual(get_by_all[0].id, 1) self.assertEqual(get_by_all[1].id, 4) self.assertEqual(get_by_all[0], srv_one) self.assertEqual(get_by_all[1], srv_four)