HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/local/lib/python3.7/test/__pycache__/test_calendar.cpython-37.opt-1.pyc
B

��g���@s�ddlZddlZddlmZddlmZmZddlZddlZddl	Z	ddl
Z
ddlZdZdZ
dZdZedd	d
d�ZdZdddd
dddgdddddddgdddddddgdd d!d"d#d$d%gd&d'd(d)d*d+dggddddddd
gdddddddgdddddddgddddd d!d"gd#d$d%d&d'd(d)ggd
ddddddgdddddddgdddddd d!gd"d#d$d%d&d'd(gd)d*d+ddddgggdddd
dddgdddddddgdddddddgdd d!d"d#d$d%gd&d'd(d)d*ddggdddddd
dgdddddddgdddddddgdddd d!d"d#gd$d%d&d'd(d)d*gd+ddddddggdd
dddddgdddddddgddddddd gd!d"d#d$d%d&d'gd(d)d*ddddgggdddd
dddgdddddddgdddddddgdd d!d"d#d$d%gd&d'd(d)d*d+dggddddddd
gdddddddgdddddddgddddd d!d"gd#d$d%d&d'd(d)gd*d+dddddggddd
ddddgdddddddgdddddddgd d!d"d#d$d%d&gd'd(d)d*dddgggddddd
ddgdddddddgdddddddgddd d!d"d#d$gd%d&d'd(d)d*d+ggd
ddddddgdddddddgdddddd d!gd"d#d$d%d&d'd(gd)d*dddddggddd
ddddgdddddddgdddddddgd d!d"d#d$d%d&gd'd(d)d*d+ddggggZd,d-d.d/d0gd0d1d2d3d4gd5d6d7d8d9ggd9d:d;d<d=gd=d>d?d@dAdBgdBdCdDdEdFggdFdGdHdIdJgdJdKdLdMdNdOgdOdPdQdRdSggdSdTdUdVdWgdXdYdZd[d\gd\d]d^d_d`gggZGdadb�dbej�ZGdcdd�ddej�ZGdedf�dfej�ZGdgdh�dhe�ZGdidj�dje�ZGdkdl�dlej�ZGdmdn�dnej�ZGdodp�dpej�Zdqdr�ZGdsdt�dtej�ZGdudv�dvej�Z Gdwdx�dxej�Z!e"dyk�r�e�#�dS)z�N)�support)�assert_python_ok�assert_python_failurez     February 0
Mo Tu We Th Fr Sa Su
    1  2  3  4  5  6
 7  8  9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29
a                                   0

      January                   February                   March
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
                1  2          1  2  3  4  5  6             1  2  3  4  5
 3  4  5  6  7  8  9       7  8  9 10 11 12 13       6  7  8  9 10 11 12
10 11 12 13 14 15 16      14 15 16 17 18 19 20      13 14 15 16 17 18 19
17 18 19 20 21 22 23      21 22 23 24 25 26 27      20 21 22 23 24 25 26
24 25 26 27 28 29 30      28 29                     27 28 29 30 31
31

       April                      May                       June
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
                1  2       1  2  3  4  5  6  7                1  2  3  4
 3  4  5  6  7  8  9       8  9 10 11 12 13 14       5  6  7  8  9 10 11
10 11 12 13 14 15 16      15 16 17 18 19 20 21      12 13 14 15 16 17 18
17 18 19 20 21 22 23      22 23 24 25 26 27 28      19 20 21 22 23 24 25
24 25 26 27 28 29 30      29 30 31                  26 27 28 29 30

        July                     August                  September
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
                1  2          1  2  3  4  5  6                   1  2  3
 3  4  5  6  7  8  9       7  8  9 10 11 12 13       4  5  6  7  8  9 10
10 11 12 13 14 15 16      14 15 16 17 18 19 20      11 12 13 14 15 16 17
17 18 19 20 21 22 23      21 22 23 24 25 26 27      18 19 20 21 22 23 24
24 25 26 27 28 29 30      28 29 30 31               25 26 27 28 29 30
31

      October                   November                  December
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
                   1             1  2  3  4  5                   1  2  3
 2  3  4  5  6  7  8       6  7  8  9 10 11 12       4  5  6  7  8  9 10
 9 10 11 12 13 14 15      13 14 15 16 17 18 19      11 12 13 14 15 16 17
16 17 18 19 20 21 22      20 21 22 23 24 25 26      18 19 20 21 22 23 24
23 24 25 26 27 28 29      27 28 29 30               25 26 27 28 29 30 31
30 31
z�    January 2004
Mo Tu We Th Fr Sa Su
          1  2  3  4
 5  6  7  8  9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
a!                                  2004

      January                   February                   March
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
          1  2  3  4                         1       1  2  3  4  5  6  7
 5  6  7  8  9 10 11       2  3  4  5  6  7  8       8  9 10 11 12 13 14
12 13 14 15 16 17 18       9 10 11 12 13 14 15      15 16 17 18 19 20 21
19 20 21 22 23 24 25      16 17 18 19 20 21 22      22 23 24 25 26 27 28
26 27 28 29 30 31         23 24 25 26 27 28 29      29 30 31

       April                      May                       June
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
          1  2  3  4                      1  2          1  2  3  4  5  6
 5  6  7  8  9 10 11       3  4  5  6  7  8  9       7  8  9 10 11 12 13
12 13 14 15 16 17 18      10 11 12 13 14 15 16      14 15 16 17 18 19 20
19 20 21 22 23 24 25      17 18 19 20 21 22 23      21 22 23 24 25 26 27
26 27 28 29 30            24 25 26 27 28 29 30      28 29 30
                          31

        July                     August                  September
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
          1  2  3  4                         1             1  2  3  4  5
 5  6  7  8  9 10 11       2  3  4  5  6  7  8       6  7  8  9 10 11 12
12 13 14 15 16 17 18       9 10 11 12 13 14 15      13 14 15 16 17 18 19
19 20 21 22 23 24 25      16 17 18 19 20 21 22      20 21 22 23 24 25 26
26 27 28 29 30 31         23 24 25 26 27 28 29      27 28 29 30
                          30 31

      October                   November                  December
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
             1  2  3       1  2  3  4  5  6  7             1  2  3  4  5
 4  5  6  7  8  9 10       8  9 10 11 12 13 14       6  7  8  9 10 11 12
11 12 13 14 15 16 17      15 16 17 18 19 20 21      13 14 15 16 17 18 19
18 19 20 21 22 23 24      22 23 24 25 26 27 28      20 21 22 23 24 25 26
25 26 27 28 29 30 31      29 30                     27 28 29 30 31
�year�month�ascii)rr�encodingax;<?xml version="1.0" encoding="{encoding}"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset={encoding}" />
<link rel="stylesheet" type="text/css" href="calendar.css" />
<title>Calendar for 2004</title>
</head>
<body>
<table border="0" cellpadding="0" cellspacing="0" class="{year}">
<tr><th colspan="3" class="{year}">2004</th></tr><tr><td><table border="0" cellpadding="0" cellspacing="0" class="{month}">
<tr><th colspan="7" class="{month}">January</th></tr>
<tr><th class="mon">Mon</th><th class="tue">Tue</th><th class="wed">Wed</th><th class="thu">Thu</th><th class="fri">Fri</th><th class="sat">Sat</th><th class="sun">Sun</th></tr>
<tr><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="thu">1</td><td class="fri">2</td><td class="sat">3</td><td class="sun">4</td></tr>
<tr><td class="mon">5</td><td class="tue">6</td><td class="wed">7</td><td class="thu">8</td><td class="fri">9</td><td class="sat">10</td><td class="sun">11</td></tr>
<tr><td class="mon">12</td><td class="tue">13</td><td class="wed">14</td><td class="thu">15</td><td class="fri">16</td><td class="sat">17</td><td class="sun">18</td></tr>
<tr><td class="mon">19</td><td class="tue">20</td><td class="wed">21</td><td class="thu">22</td><td class="fri">23</td><td class="sat">24</td><td class="sun">25</td></tr>
<tr><td class="mon">26</td><td class="tue">27</td><td class="wed">28</td><td class="thu">29</td><td class="fri">30</td><td class="sat">31</td><td class="noday">&nbsp;</td></tr>
</table>
</td><td><table border="0" cellpadding="0" cellspacing="0" class="{month}">
<tr><th colspan="7" class="{month}">February</th></tr>
<tr><th class="mon">Mon</th><th class="tue">Tue</th><th class="wed">Wed</th><th class="thu">Thu</th><th class="fri">Fri</th><th class="sat">Sat</th><th class="sun">Sun</th></tr>
<tr><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="sun">1</td></tr>
<tr><td class="mon">2</td><td class="tue">3</td><td class="wed">4</td><td class="thu">5</td><td class="fri">6</td><td class="sat">7</td><td class="sun">8</td></tr>
<tr><td class="mon">9</td><td class="tue">10</td><td class="wed">11</td><td class="thu">12</td><td class="fri">13</td><td class="sat">14</td><td class="sun">15</td></tr>
<tr><td class="mon">16</td><td class="tue">17</td><td class="wed">18</td><td class="thu">19</td><td class="fri">20</td><td class="sat">21</td><td class="sun">22</td></tr>
<tr><td class="mon">23</td><td class="tue">24</td><td class="wed">25</td><td class="thu">26</td><td class="fri">27</td><td class="sat">28</td><td class="sun">29</td></tr>
</table>
</td><td><table border="0" cellpadding="0" cellspacing="0" class="{month}">
<tr><th colspan="7" class="{month}">March</th></tr>
<tr><th class="mon">Mon</th><th class="tue">Tue</th><th class="wed">Wed</th><th class="thu">Thu</th><th class="fri">Fri</th><th class="sat">Sat</th><th class="sun">Sun</th></tr>
<tr><td class="mon">1</td><td class="tue">2</td><td class="wed">3</td><td class="thu">4</td><td class="fri">5</td><td class="sat">6</td><td class="sun">7</td></tr>
<tr><td class="mon">8</td><td class="tue">9</td><td class="wed">10</td><td class="thu">11</td><td class="fri">12</td><td class="sat">13</td><td class="sun">14</td></tr>
<tr><td class="mon">15</td><td class="tue">16</td><td class="wed">17</td><td class="thu">18</td><td class="fri">19</td><td class="sat">20</td><td class="sun">21</td></tr>
<tr><td class="mon">22</td><td class="tue">23</td><td class="wed">24</td><td class="thu">25</td><td class="fri">26</td><td class="sat">27</td><td class="sun">28</td></tr>
<tr><td class="mon">29</td><td class="tue">30</td><td class="wed">31</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td></tr>
</table>
</td></tr><tr><td><table border="0" cellpadding="0" cellspacing="0" class="{month}">
<tr><th colspan="7" class="{month}">April</th></tr>
<tr><th class="mon">Mon</th><th class="tue">Tue</th><th class="wed">Wed</th><th class="thu">Thu</th><th class="fri">Fri</th><th class="sat">Sat</th><th class="sun">Sun</th></tr>
<tr><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="thu">1</td><td class="fri">2</td><td class="sat">3</td><td class="sun">4</td></tr>
<tr><td class="mon">5</td><td class="tue">6</td><td class="wed">7</td><td class="thu">8</td><td class="fri">9</td><td class="sat">10</td><td class="sun">11</td></tr>
<tr><td class="mon">12</td><td class="tue">13</td><td class="wed">14</td><td class="thu">15</td><td class="fri">16</td><td class="sat">17</td><td class="sun">18</td></tr>
<tr><td class="mon">19</td><td class="tue">20</td><td class="wed">21</td><td class="thu">22</td><td class="fri">23</td><td class="sat">24</td><td class="sun">25</td></tr>
<tr><td class="mon">26</td><td class="tue">27</td><td class="wed">28</td><td class="thu">29</td><td class="fri">30</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td></tr>
</table>
</td><td><table border="0" cellpadding="0" cellspacing="0" class="{month}">
<tr><th colspan="7" class="{month}">May</th></tr>
<tr><th class="mon">Mon</th><th class="tue">Tue</th><th class="wed">Wed</th><th class="thu">Thu</th><th class="fri">Fri</th><th class="sat">Sat</th><th class="sun">Sun</th></tr>
<tr><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="sat">1</td><td class="sun">2</td></tr>
<tr><td class="mon">3</td><td class="tue">4</td><td class="wed">5</td><td class="thu">6</td><td class="fri">7</td><td class="sat">8</td><td class="sun">9</td></tr>
<tr><td class="mon">10</td><td class="tue">11</td><td class="wed">12</td><td class="thu">13</td><td class="fri">14</td><td class="sat">15</td><td class="sun">16</td></tr>
<tr><td class="mon">17</td><td class="tue">18</td><td class="wed">19</td><td class="thu">20</td><td class="fri">21</td><td class="sat">22</td><td class="sun">23</td></tr>
<tr><td class="mon">24</td><td class="tue">25</td><td class="wed">26</td><td class="thu">27</td><td class="fri">28</td><td class="sat">29</td><td class="sun">30</td></tr>
<tr><td class="mon">31</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td></tr>
</table>
</td><td><table border="0" cellpadding="0" cellspacing="0" class="{month}">
<tr><th colspan="7" class="{month}">June</th></tr>
<tr><th class="mon">Mon</th><th class="tue">Tue</th><th class="wed">Wed</th><th class="thu">Thu</th><th class="fri">Fri</th><th class="sat">Sat</th><th class="sun">Sun</th></tr>
<tr><td class="noday">&nbsp;</td><td class="tue">1</td><td class="wed">2</td><td class="thu">3</td><td class="fri">4</td><td class="sat">5</td><td class="sun">6</td></tr>
<tr><td class="mon">7</td><td class="tue">8</td><td class="wed">9</td><td class="thu">10</td><td class="fri">11</td><td class="sat">12</td><td class="sun">13</td></tr>
<tr><td class="mon">14</td><td class="tue">15</td><td class="wed">16</td><td class="thu">17</td><td class="fri">18</td><td class="sat">19</td><td class="sun">20</td></tr>
<tr><td class="mon">21</td><td class="tue">22</td><td class="wed">23</td><td class="thu">24</td><td class="fri">25</td><td class="sat">26</td><td class="sun">27</td></tr>
<tr><td class="mon">28</td><td class="tue">29</td><td class="wed">30</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td></tr>
</table>
</td></tr><tr><td><table border="0" cellpadding="0" cellspacing="0" class="{month}">
<tr><th colspan="7" class="{month}">July</th></tr>
<tr><th class="mon">Mon</th><th class="tue">Tue</th><th class="wed">Wed</th><th class="thu">Thu</th><th class="fri">Fri</th><th class="sat">Sat</th><th class="sun">Sun</th></tr>
<tr><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="thu">1</td><td class="fri">2</td><td class="sat">3</td><td class="sun">4</td></tr>
<tr><td class="mon">5</td><td class="tue">6</td><td class="wed">7</td><td class="thu">8</td><td class="fri">9</td><td class="sat">10</td><td class="sun">11</td></tr>
<tr><td class="mon">12</td><td class="tue">13</td><td class="wed">14</td><td class="thu">15</td><td class="fri">16</td><td class="sat">17</td><td class="sun">18</td></tr>
<tr><td class="mon">19</td><td class="tue">20</td><td class="wed">21</td><td class="thu">22</td><td class="fri">23</td><td class="sat">24</td><td class="sun">25</td></tr>
<tr><td class="mon">26</td><td class="tue">27</td><td class="wed">28</td><td class="thu">29</td><td class="fri">30</td><td class="sat">31</td><td class="noday">&nbsp;</td></tr>
</table>
</td><td><table border="0" cellpadding="0" cellspacing="0" class="{month}">
<tr><th colspan="7" class="{month}">August</th></tr>
<tr><th class="mon">Mon</th><th class="tue">Tue</th><th class="wed">Wed</th><th class="thu">Thu</th><th class="fri">Fri</th><th class="sat">Sat</th><th class="sun">Sun</th></tr>
<tr><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="sun">1</td></tr>
<tr><td class="mon">2</td><td class="tue">3</td><td class="wed">4</td><td class="thu">5</td><td class="fri">6</td><td class="sat">7</td><td class="sun">8</td></tr>
<tr><td class="mon">9</td><td class="tue">10</td><td class="wed">11</td><td class="thu">12</td><td class="fri">13</td><td class="sat">14</td><td class="sun">15</td></tr>
<tr><td class="mon">16</td><td class="tue">17</td><td class="wed">18</td><td class="thu">19</td><td class="fri">20</td><td class="sat">21</td><td class="sun">22</td></tr>
<tr><td class="mon">23</td><td class="tue">24</td><td class="wed">25</td><td class="thu">26</td><td class="fri">27</td><td class="sat">28</td><td class="sun">29</td></tr>
<tr><td class="mon">30</td><td class="tue">31</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td></tr>
</table>
</td><td><table border="0" cellpadding="0" cellspacing="0" class="{month}">
<tr><th colspan="7" class="{month}">September</th></tr>
<tr><th class="mon">Mon</th><th class="tue">Tue</th><th class="wed">Wed</th><th class="thu">Thu</th><th class="fri">Fri</th><th class="sat">Sat</th><th class="sun">Sun</th></tr>
<tr><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="wed">1</td><td class="thu">2</td><td class="fri">3</td><td class="sat">4</td><td class="sun">5</td></tr>
<tr><td class="mon">6</td><td class="tue">7</td><td class="wed">8</td><td class="thu">9</td><td class="fri">10</td><td class="sat">11</td><td class="sun">12</td></tr>
<tr><td class="mon">13</td><td class="tue">14</td><td class="wed">15</td><td class="thu">16</td><td class="fri">17</td><td class="sat">18</td><td class="sun">19</td></tr>
<tr><td class="mon">20</td><td class="tue">21</td><td class="wed">22</td><td class="thu">23</td><td class="fri">24</td><td class="sat">25</td><td class="sun">26</td></tr>
<tr><td class="mon">27</td><td class="tue">28</td><td class="wed">29</td><td class="thu">30</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td></tr>
</table>
</td></tr><tr><td><table border="0" cellpadding="0" cellspacing="0" class="{month}">
<tr><th colspan="7" class="{month}">October</th></tr>
<tr><th class="mon">Mon</th><th class="tue">Tue</th><th class="wed">Wed</th><th class="thu">Thu</th><th class="fri">Fri</th><th class="sat">Sat</th><th class="sun">Sun</th></tr>
<tr><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="fri">1</td><td class="sat">2</td><td class="sun">3</td></tr>
<tr><td class="mon">4</td><td class="tue">5</td><td class="wed">6</td><td class="thu">7</td><td class="fri">8</td><td class="sat">9</td><td class="sun">10</td></tr>
<tr><td class="mon">11</td><td class="tue">12</td><td class="wed">13</td><td class="thu">14</td><td class="fri">15</td><td class="sat">16</td><td class="sun">17</td></tr>
<tr><td class="mon">18</td><td class="tue">19</td><td class="wed">20</td><td class="thu">21</td><td class="fri">22</td><td class="sat">23</td><td class="sun">24</td></tr>
<tr><td class="mon">25</td><td class="tue">26</td><td class="wed">27</td><td class="thu">28</td><td class="fri">29</td><td class="sat">30</td><td class="sun">31</td></tr>
</table>
</td><td><table border="0" cellpadding="0" cellspacing="0" class="{month}">
<tr><th colspan="7" class="{month}">November</th></tr>
<tr><th class="mon">Mon</th><th class="tue">Tue</th><th class="wed">Wed</th><th class="thu">Thu</th><th class="fri">Fri</th><th class="sat">Sat</th><th class="sun">Sun</th></tr>
<tr><td class="mon">1</td><td class="tue">2</td><td class="wed">3</td><td class="thu">4</td><td class="fri">5</td><td class="sat">6</td><td class="sun">7</td></tr>
<tr><td class="mon">8</td><td class="tue">9</td><td class="wed">10</td><td class="thu">11</td><td class="fri">12</td><td class="sat">13</td><td class="sun">14</td></tr>
<tr><td class="mon">15</td><td class="tue">16</td><td class="wed">17</td><td class="thu">18</td><td class="fri">19</td><td class="sat">20</td><td class="sun">21</td></tr>
<tr><td class="mon">22</td><td class="tue">23</td><td class="wed">24</td><td class="thu">25</td><td class="fri">26</td><td class="sat">27</td><td class="sun">28</td></tr>
<tr><td class="mon">29</td><td class="tue">30</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td></tr>
</table>
</td><td><table border="0" cellpadding="0" cellspacing="0" class="{month}">
<tr><th colspan="7" class="{month}">December</th></tr>
<tr><th class="mon">Mon</th><th class="tue">Tue</th><th class="wed">Wed</th><th class="thu">Thu</th><th class="fri">Fri</th><th class="sat">Sat</th><th class="sun">Sun</th></tr>
<tr><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td><td class="wed">1</td><td class="thu">2</td><td class="fri">3</td><td class="sat">4</td><td class="sun">5</td></tr>
<tr><td class="mon">6</td><td class="tue">7</td><td class="wed">8</td><td class="thu">9</td><td class="fri">10</td><td class="sat">11</td><td class="sun">12</td></tr>
<tr><td class="mon">13</td><td class="tue">14</td><td class="wed">15</td><td class="thu">16</td><td class="fri">17</td><td class="sat">18</td><td class="sun">19</td></tr>
<tr><td class="mon">20</td><td class="tue">21</td><td class="wed">22</td><td class="thu">23</td><td class="fri">24</td><td class="sat">25</td><td class="sun">26</td></tr>
<tr><td class="mon">27</td><td class="tue">28</td><td class="wed">29</td><td class="thu">30</td><td class="fri">31</td><td class="noday">&nbsp;</td><td class="noday">&nbsp;</td></tr>
</table>
</td></tr></table></body>
</html>
���������	�
���
������������������z>12/29/03 12/30/03 12/31/03 01/01/04 01/02/04 01/03/04 01/04/04z>01/05/04 01/06/04 01/07/04 01/08/04 01/09/04 01/10/04 01/11/04z>01/12/04 01/13/04 01/14/04 01/15/04 01/16/04 01/17/04 01/18/04z>01/19/04 01/20/04 01/21/04 01/22/04 01/23/04 01/24/04 01/25/04z>01/26/04 01/27/04 01/28/04 01/29/04 01/30/04 01/31/04 02/01/04z>02/02/04 02/03/04 02/04/04 02/05/04 02/06/04 02/07/04 02/08/04z>02/09/04 02/10/04 02/11/04 02/12/04 02/13/04 02/14/04 02/15/04z>02/16/04 02/17/04 02/18/04 02/19/04 02/20/04 02/21/04 02/22/04z>02/23/04 02/24/04 02/25/04 02/26/04 02/27/04 02/28/04 02/29/04z>03/01/04 03/02/04 03/03/04 03/04/04 03/05/04 03/06/04 03/07/04z>03/08/04 03/09/04 03/10/04 03/11/04 03/12/04 03/13/04 03/14/04z>03/15/04 03/16/04 03/17/04 03/18/04 03/19/04 03/20/04 03/21/04z>03/22/04 03/23/04 03/24/04 03/25/04 03/26/04 03/27/04 03/28/04z>03/29/04 03/30/04 03/31/04 04/01/04 04/02/04 04/03/04 04/04/04z>04/05/04 04/06/04 04/07/04 04/08/04 04/09/04 04/10/04 04/11/04z>04/12/04 04/13/04 04/14/04 04/15/04 04/16/04 04/17/04 04/18/04z>04/19/04 04/20/04 04/21/04 04/22/04 04/23/04 04/24/04 04/25/04z>04/26/04 04/27/04 04/28/04 04/29/04 04/30/04 05/01/04 05/02/04z>05/03/04 05/04/04 05/05/04 05/06/04 05/07/04 05/08/04 05/09/04z>05/10/04 05/11/04 05/12/04 05/13/04 05/14/04 05/15/04 05/16/04z>05/17/04 05/18/04 05/19/04 05/20/04 05/21/04 05/22/04 05/23/04z>05/24/04 05/25/04 05/26/04 05/27/04 05/28/04 05/29/04 05/30/04z>05/31/04 06/01/04 06/02/04 06/03/04 06/04/04 06/05/04 06/06/04z>06/07/04 06/08/04 06/09/04 06/10/04 06/11/04 06/12/04 06/13/04z>06/14/04 06/15/04 06/16/04 06/17/04 06/18/04 06/19/04 06/20/04z>06/21/04 06/22/04 06/23/04 06/24/04 06/25/04 06/26/04 06/27/04z>06/28/04 06/29/04 06/30/04 07/01/04 07/02/04 07/03/04 07/04/04z>07/05/04 07/06/04 07/07/04 07/08/04 07/09/04 07/10/04 07/11/04z>07/12/04 07/13/04 07/14/04 07/15/04 07/16/04 07/17/04 07/18/04z>07/19/04 07/20/04 07/21/04 07/22/04 07/23/04 07/24/04 07/25/04z>07/26/04 07/27/04 07/28/04 07/29/04 07/30/04 07/31/04 08/01/04z>08/02/04 08/03/04 08/04/04 08/05/04 08/06/04 08/07/04 08/08/04z>08/09/04 08/10/04 08/11/04 08/12/04 08/13/04 08/14/04 08/15/04z>08/16/04 08/17/04 08/18/04 08/19/04 08/20/04 08/21/04 08/22/04z>08/23/04 08/24/04 08/25/04 08/26/04 08/27/04 08/28/04 08/29/04z>08/30/04 08/31/04 09/01/04 09/02/04 09/03/04 09/04/04 09/05/04z>09/06/04 09/07/04 09/08/04 09/09/04 09/10/04 09/11/04 09/12/04z>09/13/04 09/14/04 09/15/04 09/16/04 09/17/04 09/18/04 09/19/04z>09/20/04 09/21/04 09/22/04 09/23/04 09/24/04 09/25/04 09/26/04z>09/27/04 09/28/04 09/29/04 09/30/04 10/01/04 10/02/04 10/03/04z>10/04/04 10/05/04 10/06/04 10/07/04 10/08/04 10/09/04 10/10/04z>10/11/04 10/12/04 10/13/04 10/14/04 10/15/04 10/16/04 10/17/04z>10/18/04 10/19/04 10/20/04 10/21/04 10/22/04 10/23/04 10/24/04z>10/25/04 10/26/04 10/27/04 10/28/04 10/29/04 10/30/04 10/31/04z>11/01/04 11/02/04 11/03/04 11/04/04 11/05/04 11/06/04 11/07/04z>11/08/04 11/09/04 11/10/04 11/11/04 11/12/04 11/13/04 11/14/04z>11/15/04 11/16/04 11/17/04 11/18/04 11/19/04 11/20/04 11/21/04z>11/22/04 11/23/04 11/24/04 11/25/04 11/26/04 11/27/04 11/28/04z>11/29/04 11/30/04 12/01/04 12/02/04 12/03/04 12/04/04 12/05/04z>12/06/04 12/07/04 12/08/04 12/09/04 12/10/04 12/11/04 12/12/04z>12/13/04 12/14/04 12/15/04 12/16/04 12/17/04 12/18/04 12/19/04z>12/20/04 12/21/04 12/22/04 12/23/04 12/24/04 12/25/04 12/26/04z>12/27/04 12/28/04 12/29/04 12/30/04 12/31/04 01/01/05 01/02/05c@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%S)&�OutputTestCasecCs>dd�}g}x,|jdd�D]}|rt||�s|�|�qW|S)NcSs|��o|��S)N)�isspace�isdigit)�c�r,�./usr/local/lib/python3.7/test/test_calendar.py�neitherspacenordigitssz?OutputTestCase.normalize_calendar.<locals>.neitherspacenordigitF)�keepends)�
splitlines�filter�append)�self�sr.�lines�liner,r,r-�normalize_calendarqsz!OutputTestCase.normalize_calendarcCsHt��}t��}|pd|d<|jd|d�}|�|tjf|��|��dS)Nzutf-8ri�)r)	�calendar�HTMLCalendar�default_format�copyZformatyearpage�assertEqual�result_2004_html�format�encode)r3ZreqZres�calZformat_�outputr,r,r-�check_htmlcalendar_encoding}sz*OutputTestCase.check_htmlcalendar_encodingcCs@|�|�t�d��|�t��|�|�t�d��|�t��dS)Ni�r)r<r7r8�result_2004_text�
result_0_text)r3r,r,r-�test_output�szOutputTestCase.test_outputcCs0|�t���d�t�|�t���d�t�dS)Ni�r)r<r8�TextCalendar�
formatyearrCrD)r3r,r,r-�test_output_textcalendar�sz'OutputTestCase.test_output_textcalendarcCs|�dd�dS)Nr)rB)r3r,r,r-�'test_output_htmlcalendar_encoding_ascii�sz6OutputTestCase.test_output_htmlcalendar_encoding_asciicCs|�dd�dS)Nzutf-8)rB)r3r,r,r-�&test_output_htmlcalendar_encoding_utf8�sz5OutputTestCase.test_output_htmlcalendar_encoding_utf8cCs|�dt���dS)N)rB�sys�getdefaultencoding)r3r,r,r-�)test_output_htmlcalendar_encoding_default�sz8OutputTestCase.test_output_htmlcalendar_encoding_defaultcCs&dd�}|�|t���d��t�dS)NcSsdd�|D�S)NcSsg|]}dd�|D��qS)cSsg|]}dd�|D��qS)cSs g|]}d�dd�|D���qS)� css.|]&}d�|j|jt|j�dd��VqdS)z{:02d}/{:02d}/{}���N)r>r�day�strr)�.0�dr,r,r-�	<genexpr>�sziOutputTestCase.test_yeardatescalendar.<locals>.shrink.<locals>.<listcomp>.<listcomp>.<listcomp>.<genexpr>)�join)rR�zr,r,r-�
<listcomp>�sz_OutputTestCase.test_yeardatescalendar.<locals>.shrink.<locals>.<listcomp>.<listcomp>.<listcomp>r,)rR�yr,r,r-rW�szTOutputTestCase.test_yeardatescalendar.<locals>.shrink.<locals>.<listcomp>.<listcomp>r,)rR�xr,r,r-rW�szIOutputTestCase.test_yeardatescalendar.<locals>.shrink.<locals>.<listcomp>r,)r@r,r,r-�shrink�sz5OutputTestCase.test_yeardatescalendar.<locals>.shrinki�)r<r8�CalendarZyeardatescalendar�result_2004_dates)r3rZr,r,r-�test_yeardatescalendar�sz%OutputTestCase.test_yeardatescalendarcCs|�t���d�t�dS)Ni�)r<r8r[Zyeardayscalendar�result_2004_days)r3r,r,r-�test_yeardayscalendar�sz$OutputTestCase.test_yeardayscalendarcCs|�t���d�d�dS)Nr
zMo Tu We Th Fr Sa Su)r<r8rF�formatweekheader)r3r,r,r-�test_formatweekheader_short�sz*OutputTestCase.test_formatweekheader_shortcCs|�t���d�d�dS)NrzE  Monday   Tuesday  Wednesday  Thursday   Friday   Saturday   Sunday )r<r8rFr`)r3r,r,r-�test_formatweekheader_long�sz)OutputTestCase.test_formatweekheader_longcCs4|�t���dd�t�|�t���dd�t�dS)Ni�r	rr
)r<r8rF�formatmonth�result_2004_01_text�result_0_02_text)r3r,r,r-�test_formatmonth�szOutputTestCase.test_formatmonthcCs |�t��jdddd�d�dS)Ni�r	T)�withyearz8<tr><th colspan="7" class="month">January 2004</th></tr>)r<r8r9�formatmonthname)r3r,r,r-�test_formatmonthname_with_year�sz-OutputTestCase.test_formatmonthname_with_yearcCs |�t��jdddd�d�dS)Ni�r	F)rgz3<tr><th colspan="7" class="month">January</th></tr>)r<r8r9rh)r3r,r,r-�!test_formatmonthname_without_year�sz0OutputTestCase.test_formatmonthname_without_yearc	CsJt���8}dddddddg}t���|d�|�|��d	�WdQRXdS)
N)r	r)r
r	)rr
)rr)r
r)rr
)rrr	z 1  2  3  4  5  6  7)r�captured_stdoutr8rF�prweekr<�getvalue)r3�out�weekr,r,r-�test_prweek�s
zOutputTestCase.test_prweekc	Cs8t���&}t���dd�|�|��t�WdQRXdS)Ni�r	)rrkr8rFZprmonthr<rmrd)r3rnr,r,r-�test_prmonth�s
zOutputTestCase.test_prmonthc	Cs6t���$}t���d�|�|��t�WdQRXdS)Ni�)rrkr8rFZpryearr<rmrC)r3rnr,r,r-�test_pryear�s
zOutputTestCase.test_pryearc	CsBt���0}tjdddgddd�|�|����d�WdQRXdS)N�1�2�3rr	)ZcolwidthZspacingz	1   2   3)rrkr8r>r<rm�strip)r3rnr,r,r-�test_format�s
zOutputTestCase.test_formatN)�__name__�
__module__�__qualname__r7rBrErHrIrJrMr]r_rarbrfrirjrprqrrrwr,r,r,r-r(ps$




r(c@sdeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dS)�CalendarTestCasecCsL|�t�d�d�|�t�d�d�|�t�d�d�|�t�d�d�dS)Ni�r	i�ri�i�)r<r8Zisleap)r3r,r,r-�test_isleap�szCalendarTestCase.test_isleapcCs�|�ttjd�|�ttjd�|�ttjd�t��}t�tj�|�t��tj�t�tj�|�t��tj�t�|�dS)NZflabber�����)	�assertRaises�	TypeErrorr8�setfirstweekday�
ValueError�firstweekday�SUNDAYr<�MONDAY)r3Zorigr,r,r-�test_setfirstweekday�sz%CalendarTestCase.test_setfirstweekdayc	Cs(|�tjd��t�d�WdQRXdS)NZ123�{)�assertRaisesRegexr8ZIllegalWeekdayErrorr�)r3r,r,r-�test_illegal_weekday_reportedsz.CalendarTestCase.test_illegal_weekday_reportedcCsD|�ttjjd�|�ttjjd�|�tdd�tjD��d�dS)Ni����rcSsg|]}|�qSr,r,)rRrSr,r,r-rW	sz<CalendarTestCase.test_enumerate_weekdays.<locals>.<listcomp>r)r�
IndexErrorr8�day_abbr�__getitem__�day_namer<�len)r3r,r,r-�test_enumerate_weekdayssz(CalendarTestCase.test_enumerate_weekdayscCsvxpdD]h}tt|�}|�t|�d�|�t|dd��d�|�tt|��d�|�|ddd�tt|���qWdS)N)r�r�rr})�getattrr8r<r��set�list�reversed)r3�attr�valuer,r,r-�	test_dayss

zCalendarTestCase.test_dayscCs�x�dD]x}tt|�}|�t|�d�|�t|dd��d�|�|dd�|�tt|��d�|�|ddd�tt|���qWdS)N)Z
month_nameZ
month_abbrrr�r})r�r8r<r�r�r�r�)r3r�r�r,r,r-�test_monthss

zCalendarTestCase.test_monthscCs�t���ddd�}y*tjdd�}|�dd�}|�ddd�}Wn tjk
r\t�d��YnX|�	|t
�|�	|t
�|�t|�d�|�
t|�d�tjdd�}|�d�}|�dd�}|�	|t
�|�	|t
�t���ddd�}|�||�dS)Ni�rr�)�localer	z$cannot set the system default locale)r8rFrhZLocaleTextCalendarZ
formatweekdayr��Error�unittestZSkipTestZassertIsInstancerQr<r�ZassertGreaterEqualZLocaleHTMLCalendar)r3Zold_octoberr@Z
local_weekdayZlocal_monthZnew_octoberr,r,r-�test_locale_calendars s$
z&CalendarTestCase.test_locale_calendarscCstt���tjd��dS)Nr)r�r8r[Zitermonthdays3�datetimeZMAXYEAR)r3r,r,r-�test_itermonthdays37sz$CalendarTestCase.test_itermonthdays3cCs@tjdd�}t|�dd��}|�|dd�|�|dd�dS)	Nr)r�i�r
r)i�r
r	rr})i�r
r$r
)r8r[r�Zitermonthdays4r<)r3r@�daysr,r,r-�test_itermonthdays4;sz$CalendarTestCase.test_itermonthdays4cCs�xLtd�D]@}t�|�}x0dD](\}}t|�||��}|�t|�d�qWq
Wtjdd�}t|�dd��}|�|ttdd	���dS)
Nr))r	r	)i'r)�#�*r)r�i�r
r	r%)�ranger8r[r�Z
itermonthdays�assertInr�r<)r3r�r@rX�mr�r,r,r-�test_itermonthdaysAs
z#CalendarTestCase.test_itermonthdayscCsrxltd�D]`}t�|�}xPdD]H\}}t|�||��}|�|dd|�|�|dd|dd�qWq
WdS)Nr))r	r	)i'rrr	r})r�r8r[r�Zitermonthdays2r<)r3r�r@rXr�r�r,r,r-�test_itermonthdays2Ms
z$CalendarTestCase.test_itermonthdays2N)rxryrzr|r�r�r�r�r�r�r�r�r�r�r,r,r,r-r{�s

r{c@s$eZdZdd�Zdd�Zdd�ZdS)�MonthCalendarTestCasecCst��|_t�|j�dS)N)r8r��oldfirstweekdayr�)r3r,r,r-�setUpXs
zMonthCalendarTestCase.setUpcCst�|j�dS)N)r8r�r�)r3r,r,r-�tearDown\szMonthCalendarTestCase.tearDowncCs\t�||�}|�t|�t|��x6tt|��D]&}|�||tdd�||D���q.WdS)Ncss|]}|dkVqdS)rNr,)rRrPr,r,r-rTcsz4MonthCalendarTestCase.check_weeks.<locals>.<genexpr>)r8Z
monthcalendarr<r�r��sum)r3rr�weeksr@�ir,r,r-�check_weeks_sz!MonthCalendarTestCase.check_weeksN)rxryrzr�r�r�r,r,r,r-r�Wsr�c@s*eZdZejZdd�Zdd�Zdd�ZdS)�MondayTestCasecCsX|�ddd�|�ddd�|�ddd�|�ddd	�|�d
dd�|�ddd
�dS)Ni�r
)rrrri�)rrrrr	i�)r	rrrri�)rrrrr	i�)rrrrr
i�)r	rrrr)r�)r3r,r,r-�
test_februaryiszMondayTestCase.test_februarycCsJ|�ddd�|�ddd�|�ddd�|�ddd	�|�d
dd�dS)Ni�r)rrrrr
i�)rrrrri�)r	rrrrr	i�)r
rrrri�)rrrrr)r�)r3r,r,r-�
test_april|s
zMondayTestCase.test_aprilcCsX|�ddd�|�ddd�|�ddd�|�ddd	�|�d
dd�|�ddd
�dS)Ni�r)rrrrri�)rrrrri�)r	rrrrr
i�)rrrrri�)rrrrri)r
rrrrr	)r�)r3r,r,r-�
test_december�szMondayTestCase.test_decemberN)	rxryrzr8r�r�r�r�r�r,r,r,r-r�fsr�c@s*eZdZejZdd�Zdd�Zdd�ZdS)�SundayTestCasecCsX|�ddd�|�ddd�|�ddd�|�ddd	�|�d
dd�|�ddd
�dS)Ni�r
)rrrri�)rrrrr	i�)r	rrrri�)rrrrr	i�)rrrrr
i�)r	rrrr)r�)r3r,r,r-r��szSundayTestCase.test_februarycCsJ|�ddd�|�ddd�|�ddd�|�ddd	�|�d
dd�dS)Ni�r)rrrrr
i~)rrrrri�)r	rrrrr	i�)r
rrrriu)rrrrr)r�)r3r,r,r-r��s
zSundayTestCase.test_aprilcCsX|�ddd�|�ddd�|�ddd�|�ddd	�|�d
dd�|�ddd
�dS)Ni r)rrrrri�)rrrrri�)r	rrrrr
i�)rrrrri�)rrrrri�)r
rrrrr	)r�)r3r,r,r-r��szSundayTestCase.test_decemberN)	rxryrzr8r�r�r�r�r�r,r,r,r-r��sr�c
@s,eZdZddddddddd	d
g
Zdd�Zd
S)�TimegmTestCaserr�di�i'i��i@Bi��Ii;=Ki��
LcCs0x*|jD] }t�|�}|�|t�|��qWdS)N)�
TIMESTAMPS�timeZgmtimer<r8Ztimegm)r3Zsecs�tupler,r,r-�test_timegm�s
zTimegmTestCase.test_timegmN)rxryrzr�r�r,r,r,r-r��s
r�c@sDeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dS)�MonthRangeTestCasecCs|�t�dd�d�dS)Ni�r	)rr')r<r8�
monthrange)r3r,r,r-�test_january�szMonthRangeTestCase.test_januarycCs|�t�dd�d�dS)Ni�r
)rr%)r<r8r�)r3r,r,r-�test_february_leap�sz%MonthRangeTestCase.test_february_leapcCs|�t�dd�d�dS)Ni�r
)rr$)r<r8r�)r3r,r,r-�test_february_nonleap�sz(MonthRangeTestCase.test_february_nonleapcCs|�t�dd�d�dS)Ni�r)r
r')r<r8r�)r3r,r,r-r��sz MonthRangeTestCase.test_decemberc	Cs(|�tj��t�dd�WdQRXdS)Ni�r)rr8�IllegalMonthErrorr�)r3r,r,r-�test_zeroth_month�sz$MonthRangeTestCase.test_zeroth_monthc	Cs(|�tj��t�dd�WdQRXdS)Ni�r)rr8r�r�)r3r,r,r-�test_thirteenth_month�sz(MonthRangeTestCase.test_thirteenth_monthc	Cs*|�tjd��t�dd�WdQRXdS)NZ65i��A)r�r8r�r�)r3r,r,r-�test_illegal_month_reported�sz.MonthRangeTestCase.test_illegal_month_reportedN)
rxryrzr�r�r�r�r�r�r�r,r,r,r-r��sr�c@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�LeapdaysTestCasecCs|�t�dd�d�dS)Ni�r)r<r8�leapdays)r3r,r,r-�
test_no_rangeszLeapdaysTestCase.test_no_rangecCs|�t�dd�d�dS)Ni�i�r)r<r8r�)r3r,r,r-�test_no_leapdayssz!LeapdaysTestCase.test_no_leapdayscCs|�t�dd�d�dS)Ni�i�r)r<r8r�)r3r,r,r-�test_no_leapdays_upper_boundary	sz0LeapdaysTestCase.test_no_leapdays_upper_boundarycCs|�t�dd�d�dS)Ni�i�r	)r<r8r�)r3r,r,r-�test_one_leapday_lower_boundary
sz0LeapdaysTestCase.test_one_leapday_lower_boundarycCs|�t�dd�d�dS)Ni�i�r
)r<r8r�)r3r,r,r-�test_several_leapyears_in_rangesz0LeapdaysTestCase.test_several_leapyears_in_rangeN)rxryrzr�r�r�r�r�r,r,r,r-r�s
r�cCs|�dtj���S)N�
)�replace�os�linesepr?)r4r,r,r-�convsr�c@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#S)$�CommandLineTestCasecGstd|��dS)N�-mr8r	)r�r8)r)r3�argsr,r,r-�run_okszCommandLineTestCase.run_okcGs.td|��\}}}|�d|�|�|d�dS)N�-mr8susage:r
)r�r8)rr�r<)r3r�Zrc�stdout�stderrr,r,r-�
assertFailuresz!CommandLineTestCase.assertFailurecCs2|�d�}|�d|�|�d|�|�d|�dS)Nz-hsusage:scalendar.pys--help)r�r�)r3r�r,r,r-�	test_help!s
zCommandLineTestCase.test_helpcCs4|�d�|�d�|�dd�|�dddd�dS)Nz-z�spam�2004z-t�htmlrs)r�)r3r,r,r-�test_illegal_arguments's

z*CommandLineTestCase.test_illegal_argumentscCsD|��}tj��j}|�d|��|�|�d|�|�d|�dS)Nz %ssJanuarysMo Tu We Th Fr Sa Su)r�r��nowrr�r?)r3r�rr,r,r-�test_output_current_year-s
z,CommandLineTestCase.test_output_current_yearcCs|�d�}|�|tt��dS)Nr�)r�r<r�rC)r3r�r,r,r-�test_output_year4s
z$CommandLineTestCase.test_output_yearcCs |�dd�}|�|tt��dS)Nr�rs)r�r<r�rd)r3r�r,r,r-�test_output_month8sz%CommandLineTestCase.test_output_monthcCs8|�d�|�d�|�ddd�}|�|t�d��dS)Nz-ez
--encodingz	utf-16-ler�)r�r�r<rCr?)r3r�r,r,r-�test_option_encoding<s

z(CommandLineTestCase.test_option_encodingc
Cs�|�d�|�d�|�dd�t��\}}|p2d}|p:d}y8t�tj�}zt�tj||f�Wdt�tj|�XWn$tjtfk
r�|�d�YnX|�	d|d|d�}|�
d�|�|�dS)	Nz-Lz--locale�en�CzUTF-8z$cannot set the system default localez
--encodingr�)r�r��getdefaultlocale�	getlocale�LC_TIME�	setlocaler�r�ZskipTestr�r�r?)r3�lang�encZ	oldlocaler�r,r,r-�test_option_localeBs

z&CommandLineTestCase.test_option_localecCs>|�d�|�d�|�dd�|�ddd�}|�d|�dS)Nz-wz--widthr�rur�sMon Tue Wed Thu Fri Sat Sun)r�r�r�)r3r�r,r,r-�test_option_widthTs


z%CommandLineTestCase.test_option_widthcCsB|�d�|�d�|�dd�|�ddd�}|�td�|�dS)Nz-lz--linesr�rtr�zDecember

Mo Tu We)r�r�r�r�)r3r�r,r,r-�test_option_lines[s


z%CommandLineTestCase.test_option_linescCs>|�d�|�d�|�dd�|�ddd�}|�d|�dS)Nz-sz	--spacingr��8r�sSu        Mo)r�r�r�)r3r�r,r,r-�test_option_spacingbs


z'CommandLineTestCase.test_option_spacingcCsB|�d�|�d�|�dd�|�ddd�}|�td�|�dS)Nz-mz--monthr�z--monthsrsr�z
Mo Tu We Th Fr Sa Su
)r�r�r�r�)r3r�r,r,r-�test_option_monthsis


z&CommandLineTestCase.test_option_monthscCsp|�d�|�d�|�dd�|�ddd�}|�|tt��|�ddd�}|�|dd�d�|�d	|�dS)
Nz-tz--typer��textr�r�rs<?xml s <title>Calendar for 2004</title>)r�r�r<r�rCr�)r3r�r,r,r-�test_option_typeps

z$CommandLineTestCase.test_option_typecCs<|�dd�}tj��j}|�d|��|�|�d|�dS)Nz--typer�z<title>Calendar for %s</title>s3<tr><th colspan="7" class="month">January</th></tr>)r�r�r�rr�r?)r3r�rr,r,r-�test_html_output_current_yearzsz1CommandLineTestCase.test_html_output_current_yearcCs0|�ddddd�}|�|tjft��d��dS)Nz-tr�z
--encodingrr�)r�r<r=r>r:r?)r3r�r,r,r-�test_html_output_year_encoding�sz2CommandLineTestCase.test_html_output_year_encodingcCs>|�ddd�|�ddd�|�ddddd�}|�d|�dS)Nz-tr�z-cz--cssz
custom.cssr�s;<link rel="stylesheet" type="text/css" href="custom.css" />)r�r�r�)r3r�r,r,r-�test_html_output_year_css�s
z-CommandLineTestCase.test_html_output_year_cssN)rxryrzr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r,r,r,r-r�s"
r�c@seZdZdd�ZdS)�MiscTestCasecCsBddddddddd	d
ddd
ddddddddh}tj|t|d�dS)NZmdaysZJanuaryZFebruaryZEPOCHr�ZTUESDAYZ	WEDNESDAYZTHURSDAYZFRIDAYZSATURDAYr�Zdifferent_localer+rlror>Zformatstring�mainZmonthlenZ	prevmonthZ	nextmonth)�	blacklist)rZcheck__all__r8)r3r�r,r,r-�test__all__�s


zMiscTestCase.test__all__N)rxryrzr�r,r,r,r-r��sr�c@sDeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dS)�TestSubClassingCasecCsGdd�dtj�}|�|_dS)Nc@s@eZdZdd�ejjD�Zddddddd	gZd
ZdZdZ	d
Z
dS)z0TestSubClassingCase.setUp.<locals>.CustomHTMLCalcSsg|]}|d�qS)z text-nowrapr,)rRZstyler,r,r-rW�sz;TestSubClassingCase.setUp.<locals>.CustomHTMLCal.<listcomp>ZredZblueZgreenZlilacZyellowZorangeZpinkztext-center month-headztext-center monthztext-italic zlead N)rxryrzr8r9Z
cssclasses�cssclasses_weekday_headZcssclass_month_headZcssclass_month�
cssclass_year�cssclass_year_headr,r,r,r-�
CustomHTMLCal�s
r�)r8r9r@)r3r�r,r,r-r��s
zTestSubClassingCase.setUpcCs|�d|j�dd��dS)Nzclass="text-center month-head"i�r
)r�r@rh)r3r,r,r-�test_formatmonthname�sz(TestSubClassingCase.test_formatmonthnamecCs|�d|j�dd��dS)Nzclass="text-center month"i�r
)r�r@rc)r3r,r,r-rf�sz$TestSubClassingCase.test_formatmonthcCs*|j�dd�}|�d|j�|d��dS)Ni�r
zclass="wed text-nowrap"r)r@Zmonthdays2calendarr�Z
formatweek)r3r�r,r,r-�test_formatweek�sz#TestSubClassingCase.test_formatweekcCs0|j��}x |jjD]}|�d||�qWdS)Nz<th class="%s">)r@r`r�r�)r3�headerZcolorr,r,r-�test_formatweek_head�s
z(TestSubClassingCase.test_formatweek_headcCs |�d|jj|j�d��dS)Nz=<table border="0" cellpadding="0" cellspacing="0" class="%s">i�)r�r@r�rG)r3r,r,r-�test_format_year�sz$TestSubClassingCase.test_format_yearcCs&|�dd|jjdf|j�d��dS)Nz,<tr><th colspan="%d" class="%s">%s</th></tr>ri�)r�r@r�rG)r3r,r,r-�test_format_year_head�sz)TestSubClassingCase.test_format_year_headN)
rxryrzr�r�rfrrrrr,r,r,r-r��sr��__main__)$r8r�ZtestrZtest.support.script_helperrrr�r�rKr�r�rerDrdrC�dictr:r=r^r\ZTestCaser(r{r�r�r�r�r�r�r�r�r�r�rxr�r,r,r,r-�<module>s0'
&}
|k:9w
*