def test_config(self): site = Site.new(name='s2root', domain='test.site2.example.com', app="_test") site1 = Site.new(name='s2foo', domain='foo.site2.example.com', parent=site, app="_test") n = ConfigVar.q.count() v1 = ConfigVar.exists(site,"TEST","testing 123",123) v2 = ConfigVar.exists(site,"TEST2","testing 234","234") self.assertEqual(ConfigVar.q.count(), n+2) v1a = ConfigVar.exists(site,"TEST","testing 123",123) assert v1 is v1a self.assertEqual(ConfigVar.q.count(), n+2) cf = ConfigVar.get(site,"TEST") cf2 = ConfigVar.get(site,"TEST2") self.assertEquals(cf.value,123) self.assertEquals(cf2.value,u"234") self.assertEquals(site.config.TEST,123) self.assertEquals(site.config.TEST2,"234") assert SiteConfigVar.q.filter_by(parent=site.config).count() == 0 site.config["TEST"] = [12,34] assert SiteConfigVar.q.filter_by(parent=site.config).count() == 1 assert site.config["TEST"] == [12,34] assert site1.config["TEST"] == [12,34] site1.config["TEST"] = [56,67] assert site.config["TEST"] == [12,34] assert site1.config["TEST"] == [56,67] del site.config["TEST"] assert site.config["TEST"] == 123 assert site1.config["TEST"] == [56,67] site1.config["TEST2"] = 987 assert site1.config["TEST2"] == 987 assert site.config["TEST2"] == u"234" site.config["TEST2"] = u"345" assert site1.config["TEST2"] == 987 assert site.config["TEST2"] == u"345" del site1.config["TEST2"] assert site1.config["TEST2"] == u"345" assert site.config["TEST2"] == u"345" del site.config["TEST2"] assert site1.config["TEST2"] == u"234" assert site.config["TEST2"] == u"234" assert site1.config.TEST == [56,67]
def newer(parent, name=None): from pybble.core.models.site import App form = SiteEditForm(request.form, prefix="site", app=current_site.app.oid, parent=parent.oid if parent else current_site.oid) form.app.choices = tuple((o.oid,str(o)) for o in App.q.all()) form.parent.choices = tuple((o.oid,str(o)) for o in Site.q.all()) if request.method == 'POST' and form.validate(): obj = Site.new(form.domain.data, form.name.data, parent=Object.by_oid(form.parent.data), app=Object.by_oid(form.app.data)) return redirect(url_for("pybble.views.view_oid", oid=obj.oid)) return render_template('edit/site.html', obj=None, form=form, title_trace=["neue Website"])
def test_create_multi(self): site = Site.new(name='sroot', domain='test.site.example.com', app="_test") site1 = Site.new(name='sfoo', domain='foo.site.example.com', parent=site, app="_test") site2 = Site.new(name='sbar', domain='bar.site.example.com', parent=site, app="_test") site11 = Site.new(name='sfoofoo', domain='foo.foo.site.example.com', parent=site1, app="_test") site111 = Site.new(name='sfoofoofoo', domain='foo.foo.foo.site.example.com', parent=site11, app="_test") self.assertEqual(len(site.sub_sites), 2) self.assertEqual(len([x for x in site.all_sites]), 5) self.assertEqual(len([x for x in site1.all_sites]), 3) assert site.parent.name == ROOT_SITE_NAME self.assertEqual(site.name,site1.parent.name) self.assertEqual(site.name,site2.parent.name) self.assertEqual(site1.name,site11.parent.name) c = set(s.name for s in site.sub_sites) self.assertNotIn("root",c) self.assertIn("sfoo",c) self.assertNotIn("sfoofoo",c) self.assertNotIn("sfoofoofoo",c) self.assertIn("sbar",c) c = set(s.name for s in site.all_sites) self.assertIn("sroot",c) self.assertIn("sfoo",c) self.assertIn("sfoofoo",c) self.assertIn("sfoofoofoo",c) self.assertIn("sbar",c) c = set(s.name for s in site1.sub_sites) self.assertNotIn("sroot",c) self.assertNotIn("sfoo",c) self.assertIn("sfoofoo",c) self.assertNotIn("sfoofoofoo",c) self.assertNotIn("sbar",c) c = set(s.name for s in site1.all_sites) self.assertNotIn("sroot",c) self.assertIn("sfoo",c) self.assertIn("sfoofoo",c) self.assertIn("sfoofoofoo",c) self.assertNotIn("sbar",c)
def setup_sites(self): self.clear_db() app = App.q.get_by(name="_test") try: site = Site.q.get_by(domain='test.example.com') except NoData: site = Site.new(name='root', domain='test.example.com', app=app) try: site2 = Site.q.get_by(domain='foo.example.com') except NoData: site2 = Site.new(name='foo', domain='foo.example.com', parent=site, app=app) try: site3 = Site.q.get_by(domain='bar.example.com') except NoData: site3 = Site.new(name='bar', domain='bar.example.com', parent=site, app=app) try: site21 = Site.q.get_by(domain='foo.foo.example.com') except NoData: site21 = Site.new(name='foofoo', domain='foo.foo.example.com', parent=site2, app=app) db.session.commit() with pytest.raises(ManyData): site21a = Site.new(name='foofoo', domain='foo2.foo.example.com', parent=site2) db.session.rollback() with pytest.raises(ManyData): site21a = Site.new(name='foofoo3', domain='foo.foo.example.com', parent=site2) db.session.rollback() ConfigVar.exists(site,"test1","Test One",-1) ConfigVar.exists(site,"test2","Test Two",-2) db.session.commit() app = create_app(site="root", testing=True) app1 = create_app(site="foo", testing=True) app2 = create_app(site="bar", testing=True) app11 = create_app(site="foofoo", testing=True) self.assertEqual(app11.config["test1"],-1) self.assertEqual(app11.config["test2"],-2) return (app,app1,app2,app11)
def setUp(self): super(TC,self).setUp() app = self.app_class(__name__) app.config = pybble_config app.config.from_object(self) app.config.from_object("TEST") init_db(app) self.app = app self.ctx = app.test_request_context() self.ctx.push() self.cleanData() if self.testsite: try: s = Site.q.get_by(name=self.testsite) except NoData: s = Site.new(name=self.testsite, domain=self.testsite) db.session.flush() flask.current_app.site = s else: flask.current_app.site = Site.q.get_by(name=ROOT_SITE_NAME) self.setupData() self.setupRest()