예제 #1
0
    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')))
예제 #2
0
    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")))
예제 #3
0
    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())
예제 #4
0
    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))
예제 #5
0
 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())
예제 #6
0
    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))))
예제 #7
0
    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())
예제 #8
0
    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())
예제 #9
0
    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))
예제 #10
0
    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())
예제 #11
0
    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())
예제 #12
0
    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())
예제 #13
0
    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())
예제 #14
0
    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')))
예제 #15
0
    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())
예제 #16
0
    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())
예제 #17
0
    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)))
예제 #18
0
    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))
예제 #19
0
    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='*****@*****.**')))
예제 #20
0
    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")))
예제 #21
0
    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")))
예제 #22
0
    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)))
예제 #23
0
    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")))
예제 #24
0
    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)))
예제 #25
0
    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)))
예제 #26
0
    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")))
예제 #27
0
    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')))
예제 #28
0
    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)))
예제 #29
0
    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")))
예제 #30
0
    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="******")))