VI encontro PythonOnRio
Élysson Mendes Rezende
Desenvolvedor pleno na BrBid.com
# coding: utf-8
import os
from setuptools import setup
current_dir = os.path.abspath(os.path.dirname(__file__))
readme = open(os.path.join(current_dir, 'README.md')).read()
setup(
name='pythononrio-templatetags',
version='1.0',
packages=['notificacoes'],
description='Templates Tags desenvolvidos no Python On Rio',
long_description=readme,
author='Élysson MR',
author_email='elyssonmr@gmail.com',
url='https://github.com/elyssonmr/django_pkg/',
license='MIT',
install_requires=[
'Django>=1.8',
]
)
include *.md
recursive-include notificacoes *.py *.html
$ python setup.py develop
...
Installed /path/to/project/django_pkg
Processing dependencies for django-templatetags==1.0
Searching for Django==1.8.5
Best match: Django 1.8.5
Adding Django 1.8.5 to easy-install.pth file
Installing django-admin script to /home/user/.virtualenvs/venv/bin
Using /home/user/.virtualenvs/venv/lib/python2.7/site-packages
Finished processing dependencies for django-templatetags==1.0
# coding: utf-8
from django import template
register = template.Library()
@register.inclusion_tag('notificacoes/notification.html')
def render_notification():
return {}
@register.filter
def format_hello(value, nome):
return value % (nome)
Oi eu sou uma notificação!
INSTALLED_APPS = (
'notificacoes',
)
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': ':memory:',
}
}
SECRET_KEY = "ultra_secret_key_for_testing"
# coding: utf-8
from django.test import TestCase
from django.template import Context
from django.template import Template
class TemplateTagTest(TestCase):
def setUp(self):
self.template = Template('{% load notify %} {% render_notification %}')
def test_templatetag_inclusion(self):
rendered = self.template.render(Context())
self.assertIn(u'sou uma notificação', rendered)
class FilterTest(TestCase):
def setUp(self):
self.template = Template(u'{% load notify %}' +
u' {{ "Oi %s, Como você esta?"|format_hello:"Élysson MR" }}')
def test_filter(self):
rendered = self.template.render(Context())
self.assertIn(u'Élysson MR', rendered)