Exemple #1
0
    def test_parse_csv(self):
        csv_stream = StringIO("a,b\nx,y\nq,w")

        data = parse_csv(csv_stream)

        assert_that(data,
                    only_contains({"a": "x", "b": "y"}, {"a": "q", "b": "w"}))
Exemple #2
0
    def test_ignore_comments(self):
        csv = u"# top comment\na,b\n# any random comment\nc,d"
        csv_stream = StringIO(csv.encode("utf-8"))

        data = parse_csv(csv_stream)

        assert_that(data, only_contains({"a": u"c", "b": u"d"}))
Exemple #3
0
    def test_ignore_values_in_comments_column(self):
        csv = u"a,comment,b\nc,d,e"
        csv_stream = StringIO(csv.encode("utf-8"))

        data = parse_csv(csv_stream)

        assert_that(data, only_contains({"a": u"c", "b": u"e"}))
Exemple #4
0
    def test_ignore_when_empty_row(self):
        csv = u"a,b\n,\nc,d"
        csv_stream = StringIO(csv.encode("utf-8"))

        data = parse_csv(csv_stream)

        assert_that(data, only_contains({"a": u"c", "b": u"d"}))
Exemple #5
0
    def test_parse_utf8_data(self):
        csv = u"a,b\nà,ù"
        csv_stream = StringIO(csv.encode("utf-8"))

        data = parse_csv(csv_stream)

        assert_that(data, only_contains({"a": u"à", "b": u"ù"}))
Exemple #6
0
    def test_ignore_values_in_comments_column(self):
        csv = u"a,comment,b\nc,d,e"
        csv_stream = StringIO(csv.encode("utf-8"))

        data = parse_csv(csv_stream)

        assert_that(data, only_contains(
            {"a": u"c", "b": u"e"}
        ))
Exemple #7
0
    def test_ignore_comments(self):
        csv = u"# top comment\na,b\n# any random comment\nc,d"
        csv_stream = StringIO(csv.encode("utf-8"))

        data = parse_csv(csv_stream)

        assert_that(data, only_contains(
            {"a": u"c", "b": u"d"}
        ))
Exemple #8
0
    def test_ignore_when_empty_row(self):
        csv = u"a,b\n,\nc,d"
        csv_stream = StringIO(csv.encode("utf-8"))

        data = parse_csv(csv_stream)

        assert_that(data, only_contains(
            {"a": u"c", "b": u"d"}
        ))
Exemple #9
0
    def test_parse_utf8_data(self):
        csv = u"a,b\nà,ù"
        csv_stream = StringIO(csv.encode("utf-8"))

        data = parse_csv(csv_stream)

        assert_that(data, only_contains(
            {"a": u"à", "b": u"ù"}
        ))
Exemple #10
0
    def test_accept_when_some_values_empty(self):
        csv = u"a,b\n,\nc,d\nc,"
        csv_stream = StringIO(csv.encode("utf-8"))

        data = parse_csv(csv_stream)

        assert_that(data, only_contains(
            {"a": u"c", "b": u"d"},
            {"a": u"c", "b": u""}
        ))
Exemple #11
0
    def test_parse_csv(self):
        csv_stream = StringIO("a,b\nx,y\nq,w")

        data = parse_csv(csv_stream)

        assert_that(data,
                    only_contains({
                        "a": "x",
                        "b": "y"
                    }, {
                        "a": "q",
                        "b": "w"
                    }))
Exemple #12
0
    def _store_csv_data(bucket_name):
        file_stream = request.files["file"].stream
        try:
            if request.content_length > MAX_UPLOAD_SIZE:
                return _invalid_upload("file too large")
            try:
                parse_and_store(db, parse_csv(file_stream), bucket_name,
                                app.logger)

                return render_template("upload_ok.html")
            except (ParseError, ValidationError) as e:
                return _invalid_upload(e.message)
        finally:
            file_stream.close()
Exemple #13
0
    def test_accept_when_some_values_empty(self):
        csv = u"a,b\n,\nc,d\nc,"
        csv_stream = StringIO(csv.encode("utf-8"))

        data = parse_csv(csv_stream)

        assert_that(
            data, only_contains({
                "a": u"c",
                "b": u"d"
            }, {
                "a": u"c",
                "b": u""
            }))
Exemple #14
0
    def _store_csv_data(bucket_name):
        file_stream = request.files["file"].stream
        try:
            if request.content_length > MAX_UPLOAD_SIZE:
                return _invalid_upload("file too large")
            try:
                parse_and_store(
                    db,
                    parse_csv(file_stream),
                    bucket_name,
                    app.logger)

                return render_template("upload_ok.html")
            except (ParseError, ValidationError) as e:
                return _invalid_upload(e.message)
        finally:
            file_stream.close()
Exemple #15
0
    def test_parse_empty_csv(self):
        csv_stream = StringIO("")

        data = parse_csv(csv_stream)

        assert_that(data, is_([]))
Exemple #16
0
    def test_parse_empty_csv(self):
        csv_stream = StringIO("")

        data = parse_csv(csv_stream)

        assert_that(data, is_([]))