def test_update_language(self): "Should update a language with data given by post" self._mock_logged_in(times = 2) data = { 'name' : u'Javascript' } response = self.client.post('/admin/languages/%s' % self.language.slug, data = data, follow_redirects = True) language = ProgrammingLanguage.all().filter('slug =', self.language.slug).get() assert_equals(language.name, 'Javascript')
def test_delete_a_language(self): "Should delete a language on URL /admin/languages/<slug>/delete" self._mock_logged_in() language = ProgrammingLanguage(name = u'C++') language.put() slug = language.slug self.client.get('/admin/languages/%s/delete' % slug) language = ProgrammingLanguage.all().filter('slug = ', slug).get() assert_equals(language, None)
def update_language(slug): form = LanguageForm() language = ProgrammingLanguage.all().filter('slug =', slug).get() if form.validate_on_submit(): language.name = form.name.data language.put() flash('Programming language "%s" updated.' %language.name) return redirect(url_for('list_languages')) return render_template('admin/languages/edit.html', form=form, language=language)
def test_create_language_with_right_data(self): "Should create a language given data by post" from labs.util import slugify language_name = u'Haskell' language_slug = slugify(language_name) self._mock_logged_in(times = 2) data = { 'name' : language_name } response = self.client.post('/admin/languages', data = data, follow_redirects = True) from labs.models import ProgrammingLanguage language = ProgrammingLanguage.all().filter('slug =', language_slug).get() assert_equals(language.name, language_name)
def test_create_a_unique_slug_to_a_duplicated_programming_language_name(self): "Should generate a new slug to a duplicated programming language" from labs.util import slugify language_name = u'Haskell' language_slug = slugify(language_name) + '-1' self._mock_logged_in(times = 4) data = { 'name' : language_name } response = self.client.post('/admin/languages', data = data, follow_redirects = True) response = self.client.post('/admin/languages', data = data, follow_redirects = True) from labs.models import ProgrammingLanguage language = ProgrammingLanguage.all().filter('slug =', language_slug).get() assert_equals(language.name, language_name)
def list_languages(): languages = ProgrammingLanguage.all().order('name') return render_template('admin/languages/list.html', languages=languages)
def delete_language(slug): language = ProgrammingLanguage.all().filter('slug = ', slug).get() language.delete() flash('Language successful deleted.') return redirect(url_for('list_languages'))
def edit_language(slug): language = ProgrammingLanguage.all().filter('slug = ', slug).get() form = LanguageForm() form.name.data = language.name return render_template('admin/languages/edit.html', form=form, language=language)