Example #1
0
    def test_012_argument_data_range(self):
        _COLUMN_RANGE = 'A1:F1'
        _WRONG_COLUMN_RANGE = 'A1F1'

        args = [self._INPUT_FILENAME_1, '--data', _COLUMN_RANGE]
        argspec = parse_args(args)
        self.assertEqual(_COLUMN_RANGE, argspec.data)

        args = [self._INPUT_FILENAME_1, '--data', _WRONG_COLUMN_RANGE]
        self.assertRaises(ArgsError, lambda: parse_args(args))
Example #2
0
    def test_010_argument_filename(self):
        # 단일 파일일 경우
        args = [self._INPUT_FILENAME_1]
        argspec = parse_args(args)
        self.assertEqual(argspec.excel_filename, [self._INPUT_FILENAME_1])

        # 다수 파일일 경우
        args = [self._INPUT_FILENAME_1, self._INPUT_FILENAME_2]
        argspec = parse_args(args)
        self.assertEqual(argspec.excel_filename,
                         [self._INPUT_FILENAME_1, self._INPUT_FILENAME_2])
Example #3
0
    def test_013_argument_sheet_name(self):
        _WRONG_SHEET_NAME = "Sheet 2"

        args = [self._INPUT_FILENAME_1, '--sheet', self._SHEET_NAME_1]
        argspec = parse_args(args)
        wb = _open_excel_file(argspec.excel_filename[0])
        ws = _read_sheet(wb, argspec.sheet)
        self.assertIsInstance(ws, openpyxl.worksheet.Worksheet)

        args = [self._INPUT_FILENAME_1, '--sheet', _WRONG_SHEET_NAME]
        argspec = parse_args(args)
        wb = _open_excel_file(argspec.excel_filename[0])
        self.assertRaises(KeyError, lambda: _read_sheet(wb, argspec.sheet))
Example #4
0
 def test_020_open_excel_file(self):
     args = [
         self._INPUT_FILENAME_1,
     ]
     argspec = parse_args(args)
     wb = _open_excel_file(argspec.excel_filename[0])
     self.assertIsInstance(wb, openpyxl.Workbook)
Example #5
0
    def test_015_to_dict(self):
        _DATA = [{
            'NAME': 'Alan',
            'VALUE': 12,
            'COLOR': 'blue',
            'DATE': 'Sep. 25, 2009'
        }, {
            'NAME': 'Shan',
            'VALUE': 13,
            'COLOR': 'green\tblue',
            'DATE': 'Sep. 27, 2009'
        }, {
            'NAME': 'John',
            'VALUE': 45,
            'COLOR': 'orange',
            'DATE': 'Sep. 29, 2009'
        }, {
            'NAME': 'Minna',
            'VALUE': 27,
            'COLOR': 'teal',
            'DATE': 'Sep. 30, 2009'
        }]

        args = [self._INPUT_FILENAME_1, '--sheet', self._SHEET_NAME_1]
        argspec = parse_args(args)
        wb = _open_excel_file(argspec.excel_filename[0])
        ws = _read_sheet(wb, argspec.sheet)
        head = _read_head(ws, self._HEAD_RANGE)
        data = _read_data(ws, self._DATA_RANGE)
        d = _to_dict(head, data)
        self.assertEqual(_DATA, d)
Example #6
0
    def test_011_argument_head(self):
        _COLUMN_RANGE = 'A1:F1'
        _WRONG_COLUMN_RANGE = 'A1F1'

        # --head 옵션이 없을 때의 값은 None
        args = [
            self._INPUT_FILENAME_1,
        ]
        argspec = parse_args(args)
        self.assertEqual(argspec.head, None)

        args = [self._INPUT_FILENAME_1, '--head', _COLUMN_RANGE]
        argspec = parse_args(args)
        self.assertEqual(argspec.head, _COLUMN_RANGE)

        args = [self._INPUT_FILENAME_1, '--head', _WRONG_COLUMN_RANGE]
        self.assertRaises(ArgsError, lambda: parse_args(args))
Example #7
0
    def test_014_read_head(self):
        _HEAD_DATA = ["NAME", "VALUE", "COLOR", "DATE"]

        # Head 범위 값을 명시하지 않았을 때
        args = [self._INPUT_FILENAME_1, '--sheet', self._SHEET_NAME_1]
        argspec = parse_args(args)
        wb = _open_excel_file(argspec.excel_filename[0])
        ws = _read_sheet(wb, argspec.sheet)
        data = _read_head(ws, None)
        self.assertEqual(data, _HEAD_DATA)

        # Head 범위 값을 명시하였을 때
        args = [self._INPUT_FILENAME_1, '--sheet', self._SHEET_NAME_1]
        argspec = parse_args(args)
        wb = _open_excel_file(argspec.excel_filename[0])
        ws = _read_sheet(wb, argspec.sheet)
        data = _read_head(ws, self._HEAD_RANGE)
        self.assertEqual(data, _HEAD_DATA)
Example #8
0
    def test_014_read_data(self):

        _DATA = [
            ['Alan', 12, 'blue', 'Sep. 25, 2009'],
            ['Shan', 13, "green	blue", 'Sep. 27, 2009'],
            ['John', 45, 'orange', 'Sep. 29, 2009'],
            ['Minna', 27, 'teal', 'Sep. 30, 2009'],
        ]

        args = [self._INPUT_FILENAME_1, '--sheet', self._SHEET_NAME_1]
        argspec = parse_args(args)
        wb = _open_excel_file(argspec.excel_filename[0])
        ws = _read_sheet(wb, argspec.sheet)

        # 데이터 범위 값을 명시하지 않았을 때
        data = _read_data(ws, None)
        self.assertEqual(data, _DATA)

        # 데이터 범위 값을 명시하였을 때
        data = _read_data(ws, self._DATA_RANGE)
        self.assertEqual(data, _DATA)
Example #9
0
 def test_015_argument_verbose(self):
     args = [self._INPUT_FILENAME_1, '--verbose']
     argspec = parse_args(args)
     self.assertTrue(argspec.verbose)
Example #10
0
 def test_014_argument_as_file(self):
     args = [self._INPUT_FILENAME_1, '--asfile']
     argspec = parse_args(args)
     self.assertTrue(argspec.asfile)
Example #11
0
import sys
from pyxl2json import parse_args
from pyxl2json.pyxl2json import main


argspec = parse_args(sys.argv[1:])
excel2json = main(argspec)