class NetCatCommander: def __init__(self, *args, **kwargs): self.env = NetCatEnvironment() self.exe = NetCat() def configure(self): self._create_home_dir() self._create_conf_file() def run(self, **kwargs): return self.exe.listen(self.env['port'], stdout=sp.PIPE, stderr=sp.STDOUT, **kwargs) def _create_home_dir(self): if not os.path.exists(self.env['home_dir']): os.makedirs(self.env['home_dir']) def _create_conf_file(self): loader = FileLoader('/') template = loader.load_template(self.env.abs_conf_tmpl()) nc_conf = template.render(self.env) with open(self.env.abs_conf_file(), 'w') as fd: fd.write(nc_conf) def _destroy(self): shutil.rmtree(self.env['home_dir']) def __str__(self): return type(self).__name__
class NetCatEnvironmentTest(unittest.TestCase): def __init__(self, arg): super(NetCatEnvironmentTest, self).__init__(arg) os.environ['NETWORK_BASE_DIR'] = '/tmp/net/' self.home_dir = os.path.join(os.environ['NETWORK_BASE_DIR'], 'netcat666') def setUp(self): self.env = NetCatEnvironment() self.env.set_index(666) def tearDown(self): pass def test_home_dir(self): self.assertEqual(self.env['home_dir'], self.home_dir) def test_abs_conf_file(self): self.assertEqual(self.env.abs_conf_file(), os.path.join(self.home_dir, 'nc.conf')) def test_abs_conf_tmpl(self): self.assertEqual(self.env.abs_conf_tmpl(), os.path.join(os.environ['NETWORK_BASE_DIR'], 'templates' , 'nc.conf.tmpl'))
def __init__(self, *args, **kwargs): self.env = NetCatEnvironment() self.exe = NetCat()
def setUp(self): self.env = NetCatEnvironment() self.env.set_index(666)