def test_vars_models(self): langs = settings.VARS['langs'][1] # desc/value eq_(Var.all().count(), 0) # jeszcze nie ma w cache eq_(memcache.get('Var-langs'), None) #@UndefinedVariable # zapytujemy - dociaga z config i wklada do cache eq_(Var.get_value('langs'), langs) # juz jest w cache eq_(memcache.get('Var-langs'), langs) #@UndefinedVariable # ale jszcze nic nie mamy w datastore eq_(Var.all().count(), 0) # still zero # ladujemy z config Var.update_from_settings() eq_(Var.all().count(), 4) # wciaz 4 Var.update_from_settings() eq_(Var.all().count(), 4) # aktulizuemy zmienna ale ze zlym typem (nie zgadza sie z poprzednim) assert_raises(ValueError, Var.set_value, 'langs', 1) # aktualizujemy zmienna newvalue = ['foo', 'bar'] Var.set_value('langs', newvalue) eq_(memcache.get('Var-langs'), newvalue) #@UndefinedVariable memcache.delete('Var-langs') #@UndefinedVariable eq_(Var.get_value('langs'), newvalue) eq_(memcache.get('Var-langs'), newvalue) #@UndefinedVariable
def vars(self): """ strona edycji ustawien portalu """ if self.request.method=='POST': name = self.request.params['name'] forms_and_vars = [] for var in Var.all(): if name == var.name: form = VarForm(self.request.POST, obj=var) if form.validate(): new_value = yaml.load(form.data['raw']) Var.set_value(var.name, new_value) self.set_flash(u'Zmienna "%s" zapisana.'%var.desc) return self.redirect_to('vars') else: form = VarForm(obj=var) forms_and_vars.append((form,var)) else: # default forms_and_vars = [(VarForm(obj=var),var) for var in Var.all()] return self.render('admin/vars.html', forms_and_vars=forms_and_vars)