def test_render_vhost(self): vhost = Vhost( user=User(name="dev3.piquadro.local", password="******"), name="dev3.piquadro.local" ) print vhost.render("templates\\vhost.tpl") assert vhost.render("templates\\vhost.tpl") == """
def test_render_logrotate(self): vhost = Vhost( user=User(name="dev3.piquadro.local", password="******"), name="dev3.piquadro.local" ) #path = os.path.abspath(__file__) # works only if pytest is launched from the project root assert vhost.render("templates\\logrotate.tpl") == "/var/www/vhosts/dev3.piquadro.local/logs/*log"
def test_render_user(self): vhost = Vhost( user=User(name="dev3.piquadro.local", password="******"), name="dev3.piquadro.local" ) #path = os.path.abspath(__file__) # works only if pytest is launched from the project root assert vhost.render("templates\\user.tpl") == "create:dev3.piquadro.local:test::48::/var/www/vhosts/dev3.piquadro.local:/sbin/nologin:::::"
def test_render_samba(self): vhost = Vhost( user=User( name="dev3.piquadro.local", password="******", samba="dev3_piquadro"), name="dev3.piquadro.local" ) #path = os.path.abspath(__file__) # works only if pytest is launched from the project root assert vhost.render("templates\\samba.tpl") == """
def test_render_castore(self): vhost = Vhost( user=User( name="dev3.piquadro.local", password="******", samba="dev3_piquadro"), name="dev3.piquadro.local" ) # works only if pytest is launched from the project root assert vhost.render("templates\\dns-castore.tpl") == \ """dnscmd /zoneadd piquadro.local /secondary 192.168.2.100 piquadro.local.dns"""
def test_render_giasone(self): vhost = Vhost( user=User( name="dev3.piquadro.local", password="******", samba="dev3_piquadro"), name="dev3.piquadro.local" ) # works only if pytest is launched from the project root assert vhost.render("templates\\dns-giasone.tpl") == \ """dnscmd /ZoneAdd piquadro.local /Primary /file piquadro.local.dns
def test_yaml_defaults(self): yaml_test = """ --- # config defaults: ip: "192.168.2.111" user: name: "webtests" samba: 'Greendemo_WebTest' shell: /bin/bash group: name: 'nginx' id: 45 options: write_in_netposition: 0 vhosts: - name: 'webtest.greendemo.local' root: "/var/www/vhost/webtests/webtest.greendemo.local" ip: "192.168.2.106" """ yaml_result = yaml.load(yaml_test) vhosts = [] yaml_defaults = yaml_result.get('defaults', {}) if type(yaml_result.get('defaults', {})) is dict else {} for yaml_vhost in yaml_result['vhosts']: pprint.pprint(yaml_defaults) pprint.pprint(yaml_vhost) # da testare il merge dei dizionari #pprint.pprint(yaml_defaults) #pprint.pprint(dict(yaml_defaults, **yaml_vhost)) #pprint.pprint(dict(yaml_defaults.items() + yaml_vhost.items())) #pprint.pprint(dict(yaml_vhost.items() + yaml_defaults.items())) #yaml_defaults.update(yaml_vhost) #pprint.pprint(yaml_defaults.update(yaml_defaults)) vhosts.append(Vhost.yaml( dict(yaml_defaults.items() + yaml_vhost.items()) ) ) vhost = vhosts.pop() assert vhost.name == 'webtest.greendemo.local' assert vhost.root == "/var/www/vhost/webtests/webtest.greendemo.local" assert vhost.document_root == "/var/www/vhost/webtests/webtest.greendemo.local/htdocs" assert vhost.user.name == 'webtests' assert vhost.user.home == '/var/www/vhosts/webtests' assert vhost.user.samba == "Greendemo_WebTest" assert vhost.user.shell == "/bin/bash" assert vhost.user.group.name == "nginx" assert vhost.user.group.id == 45
os.makedirs(output_dir) try: stream = file(args.config_file, "r") # 'document.yaml' contains a single YAML document. except IOError as e: print "IO error, %s: %s " % (e.strerror, e.filename) exit() yaml_result = yaml.load(stream) vhosts = [] yaml_defaults = yaml_result.get("defaults", {}) if type(yaml_result.get("defaults", {})) is dict else {} for yaml_vhost in yaml_result["vhosts"]: vhosts.append(Vhost.yaml(dict(yaml_defaults.items() + yaml_vhost.items()))) # altre operazioni necessarie for vhost in vhosts: vhost.generate_strings(resource_path) print "PARSED: " for index, vhost in enumerate(vhosts): print "#" + unicode(index) + ":" + repr(vhost) # user print "Writing configurations..." config_filename = os.path.basename(os.path.splitext(args.config_file)[0])