def test_for_model(self): t = Template(""" <%= using form("/user/new", model=user) do f %> <%= f.radio('gender', 'M') %> <%= f.radio('gender', 'F') %> <% end %> """) self.assertEqual( """ <form action="/user/new" method="GET" accept-charset="UTF8"> <input id="user_gender_M" name="user['gender']" type="radio" value="M" checked="checked" /> <input id="user_gender_F" name="user['gender']" type="radio" value="F" /> </form> """, t.render(user=User(gender='M'))) t = Template(""" <%= using form("/user/new", model=user) do f %> <% for choice in ['M', 'F'] %> <%= f.radio('gender', choice) %> <% end %> <% end %> """) self.assertEqual( """ <form action="/user/new" method="GET" accept-charset="UTF8"> <input id="user_gender_M" name="user['gender']" type="radio" value="M" /> <input id="user_gender_F" name="user['gender']" type="radio" value="F" checked="checked" /> </form> """, t.render(user=User(gender='F')))
def test_for_model(self): t = Template(""" <%= using form("/user/new", model=user) do f %> <%= f.checkbox('role', value='admin') %> <%= f.checkbox('role', value='normal') %> <% end %> """) self.assertEqual(""" <form action="/user/new" method="GET" accept-charset="UTF8"> <input id="user_role_admin" name="user['role']" type="checkbox" value="admin" checked="checked" /> <input id="user_role_normal" name="user['role']" type="checkbox" value="normal" /> </form> """, t.render(user=User(id=1, name="Ryan", age=20, sex='F', role="admin"))) t = Template(""" <%= using form("/user/new", model=user) do f %> <% for choice in ['admin', 'normal'] %> <%= f.checkbox('role', choice) %> <% end %> <% end %> """) self.assertEqual(""" <form action="/user/new" method="GET" accept-charset="UTF8"> <input id="user_role_admin" name="user['role']" type="checkbox" value="admin" checked="checked" /> <input id="user_role_normal" name="user['role']" type="checkbox" value="normal" /> </form> """, t.render(user=User(id=1, name="Ryan", age=20, sex='F', role="admin")))
def test_for_tag(self): t = Template(""" <%= using form("/user/new") do f %> <%= f.textarea('post') %> <% end %> """) self.assertEqual( """ <form action="/user/new" method="GET" accept-charset="UTF8"> <textarea id="post" name="post"></textarea> </form> """, t.render()) t = Template(""" <%= using form("/user/new") do f %> <%= f.textarea('bio', 'This is my biography.') %> <% end %> """) self.assertEqual( """ <form action="/user/new" method="GET" accept-charset="UTF8"> <textarea id="bio" name="bio">This is my biography.</textarea> </form> """, t.render()) t = Template(""" <%= using form("/user/new") do f %> <%= f.textarea('body', rows=10, cols=25) %> <% end %> """) self.assertEqual( """ <form action="/user/new" method="GET" accept-charset="UTF8"> <textarea id="body" name="body" rows="10" cols="25"></textarea> </form> """, t.render()) t = Template(""" <%= using form("/user/new") do f %> <%= f.textarea('description', "Description goes here.", disabled=True) %> <% end %> """) self.assertEqual( """ <form action="/user/new" method="GET" accept-charset="UTF8"> <textarea id="description" name="description" disabled="disabled">Description goes here.</textarea> </form> """, t.render()) t = Template(""" <%= using form("/user/new") do f %> <%= f.textarea('comment', class_='comment_input') %> <% end %> """) self.assertEqual( """ <form action="/user/new" method="GET" accept-charset="UTF8"> <textarea id="comment" name="comment" class="comment_input"></textarea> </form> """, t.render())
def test_if_lines(self): t = Template("""<% if x > 10 %> Great <% elif x < 10 %> Less <% else %> Equal <% end %>""") self.assertEqual("\n Great", t.render(x=20)) self.assertEqual("\n Equal", t.render(x=10)) self.assertEqual("\n Less", t.render(x=5))
def test_expressions(self): t = Template("<%= 1 + 2 %>") self.assertEqual("3", t.render()) t = Template("1 + 2 = <%= 1 + 2 %>") self.assertEqual('1 + 2 = 3', t.render()) t = Template("<%= sum([ x for x in range(10) ]) %>") self.assertEqual('45', t.render()) t = Template("<%= 1 / 2 %>") self.assertEqual('0.5', t.render())
def test_for_model(self): t = Template(""" <%= using form("/user/new", model=user) do f %> <%= f.date('birthday') %> <% end %> """) expected_value = """ <form action="/user/new" method="GET" accept-charset="UTF8"> <input id="user_birthday" name="user['birthday']" type="date" value="2019-10-10" /> </form> """ self.assertEqual(expected_value, t.render(user=User(name="Jon", age=20, birthday="2019-10-10"))) self.assertEqual(expected_value, t.render(user=User(name="Jon", age=20, birthday=date(year=2019, month=10, day=10))))
def test_for_tag(self): t = Template(""" <%= using form("/user/new") do f %> <%= f.url('name') %> <% end %> """) self.assertEqual( """ <form action="/user/new" method="GET" accept-charset="UTF8"> <input id="name" name="name" type="url" /> </form> """, t.render()) t = Template(""" <%= using form("/user/new") do f %> <%= f.url('url', 'http://www.baidu.com') %> <% end %> """) self.assertEqual( """ <form action="/user/new" method="GET" accept-charset="UTF8"> <input id="url" name="url" type="url" value="http://www.baidu.com" /> </form> """, t.render()) t = Template(""" <%= using form("/user/new") do f %> <%= f.url('url', class_='special_input') %> <% end %> """) self.assertEqual( """ <form action="/user/new" method="GET" accept-charset="UTF8"> <input id="url" name="url" type="url" class="special_input" /> </form> """, t.render()) t = Template(""" <%= using form("/user/new") do f %> <%= f.url('url', 'http://www.baidu.com', class_='special_input', disabled=True) %> <% end %> """) self.assertEqual( """ <form action="/user/new" method="GET" accept-charset="UTF8"> <input id="url" name="url" type="url" value="http://www.baidu.com" disabled="disabled" class="special_input" /> </form> """, t.render())
def test_for_tag(self): t = Template(""" <%= using form("/user/new") do f %> <%= f.search('name') %> <% end %> """) self.assertEqual( """ <form action="/user/new" method="GET" accept-charset="UTF8"> <input id="name" name="name" type="search" /> </form> """, t.render()) t = Template(""" <%= using form("/user/new") do f %> <%= f.search('search', 'Enter your search query here') %> <% end %> """) self.assertEqual( """ <form action="/user/new" method="GET" accept-charset="UTF8"> <input id="search" name="search" type="search" value="Enter your search query here" /> </form> """, t.render()) t = Template(""" <%= using form("/user/new") do f %> <%= f.search('search', None, class_='special_input') %> <% end %> """) self.assertEqual( """ <form action="/user/new" method="GET" accept-charset="UTF8"> <input id="search" name="search" type="search" class="special_input" /> </form> """, t.render()) t = Template(""" <%= using form("/user/new") do f %> <%= f.search('search', 'Enter your search query here', class_='special_input', disabled=True) %> <% end %> """) self.assertEqual( """ <form action="/user/new" method="GET" accept-charset="UTF8"> <input id="search" name="search" type="search" value="Enter your search query here" disabled="disabled" class="special_input" /> </form> """, t.render())
def test_for_tag(self): t = Template(""" <%= using form("/user/new") do f %> <%= f.datetime("user_born_on") %> <% end %> """) self.assertEqual( """ <form action="/user/new" method="GET" accept-charset="UTF8"> <input id="user_born_on" name="user_born_on" type="datetime-local" /> </form> """, t.render()) t = Template(""" <%= using form("/user/new") do f %> <%= f.datetime("user_born_on", date(year=2020, month=1, day=1)) %> <% end %> """) self.assertEqual( """ <form action="/user/new" method="GET" accept-charset="UTF8"> <input id="user_born_on" name="user_born_on" type="datetime-local" value="2020-01-01T00:00:00" /> </form> """, t.render(date=date)) t = Template(""" <%= using form("/user/new") do f %> <%= f.datetime("user_born_on", datetime(year=2020, month=1, day=2, hour=10, minute=20, second=30)) %> <% end %> """) self.assertEqual( """ <form action="/user/new" method="GET" accept-charset="UTF8"> <input id="user_born_on" name="user_born_on" type="datetime-local" value="2020-01-02T10:20:30" /> </form> """, t.render(datetime=datetime)) t = Template(""" <%= using form("/user/new") do f %> <%= f.datetime("user_born_on", _min=date(year=2020, month=1, day=2)) %> <% end %> """) self.assertEqual( """ <form action="/user/new" method="GET" accept-charset="UTF8"> <input id="user_born_on" name="user_born_on" type="datetime-local" min="2020-01-02T00:00:00" /> </form> """, t.render(date=date))
def test_for_tag(self): t = Template(""" <%= using form("/user/new") do f %> <%= f.color('name') %> <% end %> """) self.assertEqual( """ <form action="/user/new" method="GET" accept-charset="UTF8"> <input id="name" name="name" type="color" /> </form> """, t.render()) t = Template(""" <%= using form("/user/new") do f %> <%= f.color('color', '#DEF726') %> <% end %> """) self.assertEqual( """ <form action="/user/new" method="GET" accept-charset="UTF8"> <input id="color" name="color" type="color" value="#DEF726" /> </form> """, t.render()) t = Template(""" <%= using form("/user/new") do f %> <%= f.color('color', class_='special_input') %> <% end %> """) self.assertEqual( """ <form action="/user/new" method="GET" accept-charset="UTF8"> <input id="color" name="color" type="color" class="special_input" /> </form> """, t.render()) t = Template(""" <%= using form("/user/new") do f %> <%= f.color('color', '#DEF726', disabled=True, class_='special_input') %> <% end %> """) self.assertEqual( """ <form action="/user/new" method="GET" accept-charset="UTF8"> <input id="color" name="color" type="color" value="#DEF726" disabled="disabled" class="special_input" /> </form> """, t.render())
def test_for_tag(self): t = Template(""" <%= using form("/user/new") do f %> <%= f.tel('name') %> <% end %> """) self.assertEqual(""" <form action="/user/new" method="GET" accept-charset="UTF8"> <input id="name" name="name" type="tel" /> </form> """, t.render()) t = Template(""" <%= using form("/user/new") do f %> <%= f.tel('tel', '0123456789') %> <% end %> """) self.assertEqual(""" <form action="/user/new" method="GET" accept-charset="UTF8"> <input id="tel" name="tel" type="tel" value="0123456789" /> </form> """, t.render()) t = Template(""" <%= using form("/user/new") do f %> <%= f.tel('tel', class_='special_input') %> <% end %> """) self.assertEqual(""" <form action="/user/new" method="GET" accept-charset="UTF8"> <input id="tel" name="tel" type="tel" class="special_input" /> </form> """, t.render()) t = Template(""" <%= using form("/user/new") do f %> <%= f.tel('tel', '0123456789', class_='special_input', disabled=True) %> <% end %> """) self.assertEqual(""" <form action="/user/new" method="GET" accept-charset="UTF8"> <input id="tel" name="tel" type="tel" value="0123456789" disabled="disabled" class="special_input" /> </form> """, t.render())
def test_for_tag(self): t = Template(""" <%= using form("/user/new") do f %> <%= f.date('name') %> <% end %> """) self.assertEqual(""" <form action="/user/new" method="GET" accept-charset="UTF8"> <input id="name" name="name" type="date" /> </form> """, t.render()) t = Template(""" <%= using form("/user/new") do f %> <%= f.date('date', '2020-01-01') %> <% end %> """) self.assertEqual(""" <form action="/user/new" method="GET" accept-charset="UTF8"> <input id="date" name="date" type="date" value="2020-01-01" /> </form> """, t.render()) t = Template(""" <%= using form("/user/new") do f %> <%= f.date('date', class_='special_input') %> <% end %> """) self.assertEqual(""" <form action="/user/new" method="GET" accept-charset="UTF8"> <input id="date" name="date" type="date" class="special_input" /> </form> """, t.render()) t = Template(""" <%= using form("/user/new") do f %> <%= f.date('date', '2020-01-01', disabled=True, class_='special_input') %> <% end %> """) self.assertEqual(""" <form action="/user/new" method="GET" accept-charset="UTF8"> <input id="date" name="date" type="date" value="2020-01-01" disabled="disabled" class="special_input" /> </form> """, t.render())
def test_form_with_url_and_html_id(self): t = Template(""" <%= using form("/user/new", method="POST", multipart=True, remote=False, html={"data-index": 10}) do f %> <% end %> """) self.assertEqual( """ <form action="/user/new" method="POST" accept-charset="UTF8" enctype="multipart/form-data" data-index="10"> </form> """, t.render())
def test_for_model(self): t = Template(""" <%= using form("/user/new", model=user, method="POST", multipart=True, remote=False) do f %> <% end %> """) self.assertEqual( """ <form action="/user/new" method="POST" accept-charset="UTF8" enctype="multipart/form-data"> </form> """, t.render(user=User(id=1, name="Ryan", age=20, sex='F')))
def test_for_tag(self): t = Template(""" <%= using form("/user/new", method="POST", multipart=True, remote=False) do f %> <% end %> """) self.assertEqual( """ <form action="/user/new" method="POST" accept-charset="UTF8" enctype="multipart/form-data"> </form> """, t.render())
def test_form_with_url_and_ignore_multipart_if_method_is_not_POST(self): t = Template(""" <%= using form("/user/new", id_="user_new_id", method="GET", multipart=True, remote=False) do f %> <% end %> """) self.assertEqual( """ <form id="user_new_id" action="/user/new" method="GET" accept-charset="UTF8"> </form> """, t.render())
def test_for_model(self): t = Template(""" <%= using form("/user/new", model=user) do f %> <%= f.tel('phone') %> <% end %> """) self.assertEqual(""" <form action="/user/new" method="GET" accept-charset="UTF8"> <input id="user_phone" name="user['phone']" type="tel" value="13936567656" /> </form> """, t.render(user=User(phone=13936567656)))
def test_for(self): t = Template("""<ul> <% for (i, u) in enumerate(users) %> <li><%= i %>|<%= u.name %>|<%= u.age %></li> <% end %> </ul>""") self.assertEqual( """<ul> <li>0|露西|20</li> <li>1|Lily|10</li> </ul>""", t.render(users=self.users))
def test_for_model(self): t = Template(""" <%= using form("/user/new", model=user) do f %> <%= f.email('email') %> <% end %> """) self.assertEqual( """ <form action="/user/new" method="GET" accept-charset="UTF8"> <input id="user_email" name="user['email']" type="email" value="*****@*****.**" /> </form> """, t.render(user=User(name='Jon', email='*****@*****.**')))
def test_for_model(self): t = Template(""" <%= using form("/user/new", model=user) do f %> <%= f.search('name') %> <% end %> """) self.assertEqual( """ <form action="/user/new" method="GET" accept-charset="UTF8"> <input id="user_name" name="user['name']" type="search" value="Jon" /> </form> """, t.render(user=User(name="Jon")))
def test_for_tag(self): t = Template(""" <%= using form("/user/new", model=user) do f %> <%= f.time('created_at') %> <% end %> """) self.assertEqual( """ <form action="/user/new" method="GET" accept-charset="UTF8"> <input id="user_created_at" name="user['created_at']" type="time" value="1589945183" /> </form> """, t.render(user=User(created_at="1589945183")))
def test_for_model(self): t = Template(""" <%= using form("/user/new", model=user) do f %> <%= f.number('age') %> <% end %> """) self.assertEqual( """ <form action="/user/new" method="GET" accept-charset="UTF8"> <input id="user_age" name="user['age']" type="number" value="20" /> </form> """, t.render(user=User(name='Jon', age=20)))
def test_for_model(self): t = Template(""" <%= using form("/user/new", model=user) do f %> <%= f.color('like_color') %> <% end %> """) self.assertEqual( """ <form action="/user/new" method="GET" accept-charset="UTF8"> <input id="user_like_color" name="user['like_color']" type="color" value="#FFF" /> </form> """, t.render(user=User(name="Jon", age=20, like_color="#FFF")))
def test_for_model(self): t = Template(""" <%= using form("/user/new", model=user) do f %> <%= f.range('age', _in=[16, 36]) %> <% end %> """) self.assertEqual( """ <form action="/user/new" method="GET" accept-charset="UTF8"> <input id="user_age" name="user['age']" type="range" value="20" min="16" max="36" /> </form> """, t.render(user=User(age=20)))
def test_for_model(self): t = Template(""" <%= using form("/user/new", model=user) do f %> <%= f.hidden('id') %> <% end %> """) self.assertEqual( """ <form action="/user/new" method="GET" accept-charset="UTF8"> <input id="user_id" name="user['id']" type="hidden" value="10" /> </form> """, t.render(user=User(name='Jon', id=10)))
def test_for_model(self): t = Template(""" <%= using form("/user/new", model=user) do f %> <%= f.textarea('intro') %> <% end %> """) self.assertEqual( """ <form action="/user/new" method="GET" accept-charset="UTF8"> <textarea id="user_intro" name="user['intro']">1111,2222,aaaa,bbbb</textarea> </form> """, t.render(user=User(intro="1111,2222,aaaa,bbbb")))
def test_for_model(self): t = Template(""" <%= using form("/user/new", model=user) do f %> <%= f.label('name') %> <% end %> """) self.assertEqual( """ <form action="/user/new" method="GET" accept-charset="UTF8"> <label for="user_name">Name</label> </form> """, t.render(user=User(name='Jon')))
def test_for_model(self): t = Template(""" <%= using form("/user/new", model=user) do f %> <%= f.week("born_week") %> <% end %> """) self.assertEqual( """ <form action="/user/new" method="GET" accept-charset="UTF8"> <input id="user_born_week" name="user['born_week']" type="week" value="34" /> </form> """, t.render(user=User(born_week=34)))
def test_for_model(self): t = Template(""" <%= using form("/user/new", model=user) do f %> <%= f.url('blog_address') %> <% end %> """) self.assertEqual( """ <form action="/user/new" method="GET" accept-charset="UTF8"> <input id="user_blog_address" name="user['blog_address']" type="url" value="https://www.ryanpoy.com" /> </form> """, t.render(user=User(blog_address="https://www.ryanpoy.com")))
def test_for_model(self): t = Template(""" <%= using form("/user/new", model=user) do f %> <%= f.password('password') %> <% end %> """) self.assertEqual( """ <form action="/user/new" method="GET" accept-charset="UTF8"> <input id="user_password" name="user['password']" type="password" value="abc123" /> </form> """, t.render(user=User(name='Jon', password="******")))