コード例 #1
0
def test_columnize_array():
    assert columnize(list(range(12)),
                     opts={
                         'displaywidth': 6,
                         'arrange_array': True
                     }) == _strip("""
[ 0,
  1,
  2,
  3,
  4,
  5,
  6,
  7,
  8,
  9,
 10,
 11]

        """)
    assert columnize(list(range(12)),
                     opts={
                         'displaywidth': 10,
                         'arrange_array': True
                     }) == _strip("""
[ 0,  1,
  2,  3,
  4,  5,
  6,  7,
  8,  9,
 10, 11]

        """)
コード例 #2
0
def test_columnize_count55():
    data = [str(i) for i in range(55)]
    assert columnize(data, opts={
        'displaywidth': 39,
        'arrange_array': True
    }) == _strip("""
[ 0,  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, 32, 33, 34, 35,
 36, 37, 38, 39, 40, 41, 42, 43, 44,
 45, 46, 47, 48, 49, 50, 51, 52, 53,
 54]

        """)

    assert columnize(data,
                     displaywidth=39,
                     ljust=False,
                     colsep=', ',
                     lineprefix='    ') == _strip("""
    0,  7, 14, 21, 28, 35, 42, 49
    1,  8, 15, 22, 29, 36, 43, 50
    2,  9, 16, 23, 30, 37, 44, 51
    3, 10, 17, 24, 31, 38, 45, 52
    4, 11, 18, 25, 32, 39, 46, 53
    5, 12, 19, 26, 33, 40, 47, 54
    6, 13, 20, 27, 34, 41, 48
        """)

    assert columnize(data,
                     displaywidth=39,
                     ljust=False,
                     arrange_vertical=False,
                     colsep=', ') == _strip("""
 0,  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, 32, 33, 34, 35, 36, 37, 38, 39
40, 41, 42, 43, 44, 45, 46, 47, 48, 49
50, 51, 52, 53, 54
        """)

    assert columnize(data,
                     displaywidth=39,
                     ljust=False,
                     arrange_vertical=False,
                     colsep=', ',
                     lineprefix='    ') == _strip("""
     0,  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
    32, 33, 34, 35, 36, 37, 38, 39
    40, 41, 42, 43, 44, 45, 46, 47
    48, 49, 50, 51, 52, 53, 54
        """)
コード例 #3
0
    def show_completion_suggestions(self, _buffer):
        words = self.parent().get_completions(_buffer)

        # No words to show, just return
        if len(words) == 0:
            return

        # Close any popups before creating a new one
        if self.completer.popup():
            self.completer.popup().close()

        self.init_completion_list(words)

        leastcmn = long_substr(words)
        self.insert_completion(leastcmn)

        # If only one word to complete, just return and don't display options
        if len(words) == 1:
            return

        if self.mode == COMPLETE_MODE.DROPDOWN:
            cr = self.parent().edit.cursorRect()
            sbar_w = self.completer.popup().verticalScrollBar()
            popup_width = self.completer.popup().sizeHintForColumn(0)
            popup_width += sbar_w.sizeHint().width()
            cr.setWidth(popup_width)
            self.completer.complete(cr)
        elif self.mode == COMPLETE_MODE.INLINE:
            cl = columnize(words, colsep='  |  ')
            self.parent()._insert_output_text('\n\n' + cl + '\n',
                                              lf=True,
                                              keep_buffer=True)
コード例 #4
0
def test_columnize_count27():
    data = (
        "one",
        "two",
        "three",
        "for",
        "five",
        "six",
        "seven",
        "eight",
        "nine",
        "ten",
        "eleven",
        "twelve",
        "thirteen",
        "fourteen",
        "fifteen",
        "sixteen",
        "seventeen",
        "eightteen",
        "nineteen",
        "twenty",
        "twentyone",
        "twentytwo",
        "twentythree",
        "twentyfour",
        "twentyfive",
        "twentysix",
        "twentyseven",
    )
    # We use 'inline strings' to make sure the trailing space is obvious to
    # the reader and won't get lost due to automatic removal in some editors:
    assert columnize(data) == (
        'one    five   nine    thirteen  seventeen  twentyone    twentyfive \n'
        'two    six    ten     fourteen  eightteen  twentytwo    twentysix  \n'
        'three  seven  eleven  fifteen   nineteen   twentythree  twentyseven\n'
        'for    eight  twelve  sixteen   twenty     twentyfour \n')
    assert columnize(data, arrange_vertical=False) == (
        'one         two        three        for        five         six       \n'
        'seven       eight      nine         ten        eleven       twelve    \n'
        'thirteen    fourteen   fifteen      sixteen    seventeen    eightteen \n'
        'nineteen    twenty     twentyone    twentytwo  twentythree  twentyfour\n'
        'twentyfive  twentysix  twentyseven\n')
コード例 #5
0
def test_columnize_horizontal_vs_vertical():
    dat4 = list('0123')
    # use displaywidth 4
    assert columnize(dat4, opts={
        'displaywidth': 4,
        'arrange_vertical': False
    }) == _strip("""
0  1
2  3
    """)
    assert columnize(dat4, opts={
        'displaywidth': 4,
        'arrange_vertical': True
    }) == _strip("""
0  2
1  3
    """)

    # use displaywidth 7:
    assert columnize(dat4, opts={
        'displaywidth': 7,
        'arrange_vertical': False
    }) == _strip("""
0  1  2
3
    """)
    # FIXME: this looks like a bug to me:
    assert columnize(dat4, opts={
        'displaywidth': 7,
        'arrange_vertical': True
    }) == _strip("""
0  2
1  3
    """)

    # longer dataset:
    dat100 = [str(i) for i in range(100)]
    assert columnize(dat100,
                     opts={
                         'displaywidth': 80,
                         'arrange_vertical': False
                     }) == _strip("""
 0   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  32  33  34  35  36  37  38  39
40  41  42  43  44  45  46  47  48  49  50  51  52  53  54  55  56  57  58  59
60  61  62  63  64  65  66  67  68  69  70  71  72  73  74  75  76  77  78  79
80  81  82  83  84  85  86  87  88  89  90  91  92  93  94  95  96  97  98  99
    """)
    assert columnize(dat100,
                     opts={
                         'displaywidth': 80,
                         'arrange_vertical': True
                     }) == _strip("""
0  5  10  15  20  25  30  35  40  45  50  55  60  65  70  75  80  85  90  95
1  6  11  16  21  26  31  36  41  46  51  56  61  66  71  76  81  86  91  96
2  7  12  17  22  27  32  37  42  47  52  57  62  67  72  77  82  87  92  97
3  8  13  18  23  28  33  38  43  48  53  58  63  68  73  78  83  88  93  98
4  9  14  19  24  29  34  39  44  49  54  59  64  69  74  79  84  89  94  99
    """)
コード例 #6
0
def test_columnize_basic():
    assert columnize([]) == '<empty>\n'
    assert columnize(["a", '2', "c"], 10, ', ') == 'a, 2, c\n'
    assert columnize(["oneitem"]) == 'oneitem\n'
    assert columnize(("one", "two", "three")) == 'one  two  three\n'
    assert columnize(list(range(4))) == '0  1  2  3\n'
コード例 #7
0
def test_columnize_raises_typeerror():
    with pytest.raises(TypeError):
        columnize(5)