Example #1
0
def _run_filter(output_filter,
                input_stream=None,
                output_stream=None,
                *args,
                **kwargs):
    """Feeds stdin to an instance of OutputFilter and spews to stdout.

    Args:
        output_filter: An instance of OutputFilter.
        input_stream: Where to read input from.
        output_stream: Where to write output to.
    """
    if not input_stream:
        input_stream = sys.stdin
    if not output_stream:
        output_stream = sys.stdout

    for json_string in _unbuffered_input(input_stream):
        try:
            blob = simplejson.loads(json_string)
        except simplejson.JSONDecodeError as e:
            write_exception(e)
            continue

        blob = output_filter.filter_line(blob)
        if blob:
            output_stream.write(simplejson.dumps(blob))
            output_stream.write('\n')

    final_blobs = output_filter.end_of_lines()
    for blob in final_blobs:
        output_stream.write(simplejson.dumps(blob))
        output_stream.write('\n')

    output_stream.flush()
def _run_filter(output_filter, input_stream=None, output_stream=None, *args, **kwargs):
    """Feeds stdin to an instance of OutputFilter and spews to stdout.

    Args:
        output_filter: An instance of OutputFilter.
        input_stream: Where to read input from.
        output_stream: Where to write output to.
    """
    if not input_stream:
        input_stream = sys.stdin
    if not output_stream:
        output_stream = sys.stdout

    for json_string in _unbuffered_input(input_stream):
        try:
            blob = simplejson.loads(json_string)
        except simplejson.JSONDecodeError as e:
            write_exception(e)
            continue

        blob = output_filter.filter_line(blob)
        if blob:
            output_stream.write(simplejson.dumps(blob))
            output_stream.write('\n')

    final_blobs = output_filter.end_of_lines()
    for blob in final_blobs:
        output_stream.write(simplejson.dumps(blob))
        output_stream.write('\n')

    output_stream.flush()
Example #3
0
 def _to_url(cls, url_path):
     try:
         return u'{0}{1}'.format(cls.BASE_URL, url_path)
     except Exception as e:
         write_error_message(url_path)
         write_exception(e)
         raise e
Example #4
0
    def test_specific_exception(self):
        try:
            raise BadDomainError()
        except Exception as e:
            write_exception(e)

        output = self._stringio.getvalue()
        T.assert_equal(0, output.find('[ERROR] BadDomainError'))
Example #5
0
    def test_simple_exception(self):
        try:
            raise Exception()
        except Exception as e:
            write_exception(e)

        output = self._stringio.getvalue()
        T.assert_equal(0, output.find('[ERROR]'))
Example #6
0
    def test_exception_message(self):
        try:
            raise BadDomainError('Look for me in validation')
        except Exception as e:
            write_exception(e)

        output = self._stringio.getvalue()
        T.assert_equal(0, output.find('[ERROR] BadDomainError Look for me in validation'))
    def test_specific_exception(self):
        try:
            raise BadDomainError()
        except Exception as e:
            write_exception(e)

        output = self._stringio.getvalue()
        T.assert_equal(0, output.find('[ERROR] BadDomainError'))
    def test_simple_exception(self):
        try:
            raise Exception()
        except Exception as e:
            write_exception(e)

        output = self._stringio.getvalue()
        T.assert_equal(0, output.find('[ERROR]'))
Example #9
0
    def test_exception_message(self, capsys):
        try:
            raise BadDomainError('Look for me in validation')
        except Exception as e:
            write_exception(e)

        output = capsys.readouterr().err
        assert output.find('[ERROR] BadDomainError Look for me in validation') == 0
Example #10
0
    def test_specific_exception(self, capsys):
        try:
            raise BadDomainError()
        except Exception as e:
            write_exception(e)

        output = capsys.readouterr().err
        assert output.find('[ERROR] BadDomainError') == 0
Example #11
0
    def test_simple_exception(self, capsys):
        try:
            raise Exception()
        except Exception as e:
            write_exception(e)

        output = capsys.readouterr().err
        assert 0 == output.find('[ERROR]')
Example #12
0
    def _to_urls(cls, fmt_url_path, url_path_args):
        url_paths = []
        for path_arg in url_path_args:
            try:
                url_paths.append(fmt_url_path.format(path_arg))
            except Exception as e:
                write_error_message(path_arg)
                write_exception(e)
                raise e

        return [cls._to_url(url_path) for url_path in url_paths]
Example #13
0
        def wrapper(*args, **kwargs):
            try:
                result = fn(*args, **kwargs)
                return result
            except InvalidRequestError as e:
                write_exception(e)

                if hasattr(e, 'request'):
                    write_error_message('request {0}'.format(repr(e.request)))
                if hasattr(e, 'response'):
                    write_error_message('response {0}'.format(repr(e.response)))

                raise e
Example #14
0
def run_filter(output_filter, input_stream=None, output_stream=None):
    """Feeds stdin to an instance of OutputFilter and spews to stdout.

    Args:
        output_filter: An instance of OutputFilter.
        input_stream: Where to read input from.
        output_stream: Where to write output to.
    """
    def _unbuffered_input(read_from):
        """A generator to allow lines to be read before EOF is reached.

        Args:
            read_from: A stream to read from
        Returns:
            yields strings
        """
        line = read_from.readline()
        while bool(line):
            yield line.decode('latin-1',
                              errors='ignore').encode('utf-8', errors='ignore')
            line = read_from.readline()

    if not input_stream:
        input_stream = sys.stdin
    if not output_stream:
        output_stream = sys.stdout

    for json_string in _unbuffered_input(input_stream):
        try:
            blob = simplejson.loads(json_string)
        except simplejson.JSONDecodeError as e:
            write_exception(e)
            continue

        blob = output_filter.filter_line(blob)
        if blob:
            output_stream.write(simplejson.dumps(blob))
            output_stream.write('\n')

    final_blobs = output_filter.end_of_lines()
    for blob in final_blobs:
        output_stream.write(simplejson.dumps(blob))
        output_stream.write('\n')

    output_stream.flush()
Example #15
0
def run_filter(output_filter, input_stream=None, output_stream=None):
    """Feeds stdin to an instance of OutputFilter and spews to stdout.

    Args:
        output_filter: An instance of OutputFilter.
        input_stream: Where to read input from.
        output_stream: Where to write output to.
    """
    def _unbuffered_input(read_from):
        """A generator to allow lines to be read before EOF is reached.

        Args:
            read_from: A stream to read from
        Returns:
            yields strings
        """
        line = read_from.readline()
        while bool(line):
            yield line.decode('latin-1', errors='ignore').encode('utf-8', errors='ignore')
            line = read_from.readline()

    if not input_stream:
        input_stream = sys.stdin
    if not output_stream:
        output_stream = sys.stdout

    for json_string in _unbuffered_input(input_stream):
        try:
            blob = simplejson.loads(json_string)
        except simplejson.JSONDecodeError as e:
            write_exception(e)
            continue

        blob = output_filter.filter_line(blob)
        if blob:
            output_stream.write(simplejson.dumps(blob))
            output_stream.write('\n')

    final_blobs = output_filter.end_of_lines()
    for blob in final_blobs:
        output_stream.write(simplejson.dumps(blob))
        output_stream.write('\n')

    output_stream.flush()