# file, You can obtain one at http://mozilla.org/MPL/2.0/.

from nose.tools import eq_, ok_

from socorro.lib.util import DotDict, SilentFakeLogger
from socorro.processor.processed_transform_rules import (
    ProcessedTransformRule,
    OOMSignature,
    SigTrunc,
)

from socorro.processor.signature_utilities import CSignatureTool
from socorro.unittest.testbase import TestCase

csig_config = DotDict()
csig_config.irrelevant_signature_re = ''
csig_config.prefix_signature_re = ''
csig_config.signatures_with_line_numbers_re = ''
csig_config.signature_sentinels = []
c_signature_tool = CSignatureTool(csig_config)


def create_basic_fake_processor():
    fake_processor = DotDict()
    fake_processor.c_signature_tool = c_signature_tool
    fake_processor.config = DotDict()
    # need help figuring out failures? switch to FakeLogger and read stdout
    fake_processor.config.logger = SilentFakeLogger()
    #fake_processor.config.logger = FakeLogger()
    return fake_processor
from socorro.processor.signature_utilities import CSignatureTool
from socorro.lib.util import DotDict, emptyFilter
import config.processorconfig as old

config = DotDict()
config.irrelevant_signature_re = old.irrelevantSignatureRegEx.default
config.prefix_signature_re = old.prefixSignatureRegEx
config.signatures_with_line_numbers_re = old.signaturesWithLineNumbersRegEx.default
config.signature_sentinels = old.signatureSentinels.default
c_tool = CSignatureTool(config)

if __name__ == '__main__':
    def outputSchema(t):
        return lambda(f): f

@outputSchema("signature:chararray")
def signature_for_dump(processed_json, chromehang):
    if processed_json is None:
        return None

    dump = processed_json.get('dump', None)
    if dump is None:
        return None

    if chromehang:
        hang = 1
    elif processed_json.get('hangid', None) is not None:
        hang = -1
    else:
        hang = 0
from socorro.processor.signature_utilities import CSignatureTool
from socorro.lib.util import DotDict, emptyFilter
import config.processorconfig as old

config = DotDict()
config.irrelevant_signature_re = old.irrelevantSignatureRegEx.default
config.prefix_signature_re = old.prefixSignatureRegEx
config.signatures_with_line_numbers_re = old.signaturesWithLineNumbersRegEx.default
config.signature_sentinels = old.signatureSentinels.default
c_tool = CSignatureTool(config)

if __name__ == '__main__':

    def outputSchema(t):
        return lambda (f): f


@outputSchema("signature:chararray")
def signature_for_dump(processed_json, chromehang):
    if processed_json is None:
        return None

    dump = processed_json.get('dump', None)
    if dump is None:
        return None

    if chromehang:
        hang = 1
    elif processed_json.get('hangid', None) is not None:
        hang = -1
    else: