Changeset 1578:bca0ec28c76c


Ignore:
Timestamp:
Oct 4, 2014, 6:12:22 PM (6 years ago)
Author:
Stefan Schwarzer <sschwarzer@…>
Branch:
default
Message:
Move tests for valid unix lines before tests for invalid lines.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • test/test_stat.py

    r1577 r1578  
    122122           "osup", "../os2"]
    123123        ]
     124        self._test_valid_lines(ftputil.stat.UnixParser, lines,
     125                               expected_stat_results)
     126
     127    def test_alternative_unix_format(self):
     128        # See http://ftputil.sschwarzer.net/trac/ticket/12 for a
     129        # description for the need for an alternative format.
     130        lines = [
     131          "drwxr-sr-x   2   200           512 May  4  2000 "
     132            "chemeng link -> chemeng target",
     133          # The year value for this line will change with the actual time.
     134          "-rw-r--r--   1   200          4604 Dec 19 23:11 index.html",
     135          "drwxr-sr-x   2   200           512 May 29  2000 os2",
     136          "lrwxrwxrwx   2   200           512 May 29  2000 osup -> ../os2"
     137        ]
     138        expected_stat_results = [
     139          [17901, None, None, 2, None, "200", 512, None,
     140           (2000, 5, 4, 0, 0, 0), None, DAY_PRECISION,
     141           "chemeng link", "chemeng target"],
     142          [33188, None, None, 1, None, "200", 4604, None,
     143           (self._expected_year(), 12, 19, 23, 11, 0), None, MINUTE_PRECISION,
     144           "index.html", None],
     145          [17901, None, None, 2, None, "200", 512, None,
     146           (2000, 5, 29, 0, 0, 0), None, DAY_PRECISION,
     147           "os2", None],
     148          [41471, None, None, 2, None, "200", 512, None,
     149           (2000, 5, 29, 0, 0, 0), None, DAY_PRECISION,
     150           "osup", "../os2"]
     151        ]
     152        self._test_valid_lines(ftputil.stat.UnixParser, lines,
     153                               expected_stat_results)
     154
     155    def test_pre_epoch_times_for_unix(self):
     156        # See http://ftputil.sschwarzer.net/trac/ticket/83 .
     157        # `mirrors.ibiblio.org` returns dates before the "epoch" that
     158        # cause an `OverflowError` in `mktime` on some platforms,
     159        # e. g. Windows.
     160        lines = [
     161          "-rw-r--r--   1 45854    200          4604 May  4  1968 index.html",
     162          "-rw-r--r--   1 45854    200          4604 Dec 31  1969 index.html",
     163          "-rw-r--r--   1 45854    200          4604 May  4  1800 index.html",
     164        ]
     165        expected_stat_result = \
     166          [33188, None, None, 1, "45854", "200", 4604, None,
     167           EPOCH, None, DAY_PRECISION, "index.html", None]
     168        # Make shallow copies to avoid converting the time tuple more
     169        # than once in _test_valid_lines`.
     170        expected_stat_results = [expected_stat_result[:],
     171                                 expected_stat_result[:],
     172                                 expected_stat_result[:]]
    124173        self._test_valid_lines(ftputil.stat.UnixParser, lines,
    125174                               expected_stat_results)
     
    158207        self._test_invalid_lines(ftputil.stat.UnixParser, lines)
    159208
    160     def test_alternative_unix_format(self):
    161         # See http://ftputil.sschwarzer.net/trac/ticket/12 for a
    162         # description for the need for an alternative format.
    163         lines = [
    164           "drwxr-sr-x   2   200           512 May  4  2000 "
    165             "chemeng link -> chemeng target",
    166           # The year value for this line will change with the actual time.
    167           "-rw-r--r--   1   200          4604 Dec 19 23:11 index.html",
    168           "drwxr-sr-x   2   200           512 May 29  2000 os2",
    169           "lrwxrwxrwx   2   200           512 May 29  2000 osup -> ../os2"
    170         ]
    171         expected_stat_results = [
    172           [17901, None, None, 2, None, "200", 512, None,
    173            (2000, 5, 4, 0, 0, 0), None, DAY_PRECISION,
    174            "chemeng link", "chemeng target"],
    175           [33188, None, None, 1, None, "200", 4604, None,
    176            (self._expected_year(), 12, 19, 23, 11, 0), None, MINUTE_PRECISION,
    177            "index.html", None],
    178           [17901, None, None, 2, None, "200", 512, None,
    179            (2000, 5, 29, 0, 0, 0), None, DAY_PRECISION,
    180            "os2", None],
    181           [41471, None, None, 2, None, "200", 512, None,
    182            (2000, 5, 29, 0, 0, 0), None, DAY_PRECISION,
    183            "osup", "../os2"]
    184         ]
    185         self._test_valid_lines(ftputil.stat.UnixParser, lines,
    186                                expected_stat_results)
    187 
    188     def test_pre_epoch_times_for_unix(self):
    189         # See http://ftputil.sschwarzer.net/trac/ticket/83 .
    190         # `mirrors.ibiblio.org` returns dates before the "epoch" that
    191         # cause an `OverflowError` in `mktime` on some platforms,
    192         # e. g. Windows.
    193         lines = [
    194           "-rw-r--r--   1 45854    200          4604 May  4  1968 index.html",
    195           "-rw-r--r--   1 45854    200          4604 Dec 31  1969 index.html",
    196           "-rw-r--r--   1 45854    200          4604 May  4  1800 index.html",
    197         ]
    198         expected_stat_result = \
    199           [33188, None, None, 1, "45854", "200", 4604, None,
    200            EPOCH, None, DAY_PRECISION, "index.html", None]
    201         # Make shallow copies to avoid converting the time tuple more
    202         # than once in _test_valid_lines`.
    203         expected_stat_results = [expected_stat_result[:],
    204                                  expected_stat_result[:],
    205                                  expected_stat_result[:]]
    206         self._test_valid_lines(ftputil.stat.UnixParser, lines,
    207                                expected_stat_results)
    208 
    209209    #
    210210    # Microsoft parser
Note: See TracChangeset for help on using the changeset viewer.