Exemple #1
0
    def run_field_rules(self, v, single_key, plural_key, simple_filepath,
                        field_out):
        '''run the set of field-level rules against some json_data, that came from simple_filepath,
            and append results to field_out list

        Args:
            v (JSON): list of views
            single_key (str): e.g. dimension
            plural_key (str): e.g. dimensions
            simple_fileapath (str): path to some file
            field_out (list): list of results for field-level rules

        Returns:
            input field_out list with additional dictionary results

        '''
        ## unfortunately, "view: dim_date {}" is a valid file so it might not have any measures or dimensions
        if not plural_key in v:
            return field_out

        for json_d in v[plural_key]:
            json_d['_type'] = single_key
            f = LookMLField(json_d)
            for rule in self.field_rules:
                relevant, passed = rule.run(f)
                if relevant:
                    d = {
                        "file": simple_filepath,
                        "rule": rule.name(),
                        "passed": int(passed),
                        "type": single_key,
                        "fieldname": json_d['name']
                    }  #['_' + single_key]}
                    field_out.append(d)
                    logging.debug(d)
        return field_out
Exemple #2
0
def get_1st_measure(raw_lookml):
    json_data = get_json_from_lookml(raw_lookml)
    #    m = json_data['files'][0]['views'][0]['measures'][0]
    m = json_data['views'][0]['measures'][0]
    m['_type'] = 'measure'
    return LookMLField(m)
Exemple #3
0
def get_1st_dimension(raw_lookml):
    json_data = get_json_from_lookml(raw_lookml)
    #    j = json_data['files'][0]['views'][0]['dimensions'][0]
    j = json_data['views'][0]['dimensions'][0]
    j['_type'] = 'dimension'
    return LookMLField(j)
Exemple #4
0
def test_run3():
    relevant, passed = AllCapsRule().run(LookMLField({"_type": "junk"}))
    assert not relevant
    assert not passed
Exemple #5
0
def get_1st_measure(raw_lookml):
    json_data = get_json_from_lookml(raw_lookml)
    #    m = json_data['files'][0]['views'][0]['measures'][0]
    m = json_data["views"][0]["measures"][0]
    m["_type"] = "measure"
    return LookMLField(m)
Exemple #6
0
def get_1st_dimension(raw_lookml):
    json_data = get_json_from_lookml(raw_lookml)
    #    j = json_data['files'][0]['views'][0]['dimensions'][0]
    j = json_data["views"][0]["dimensions"][0]
    j["_type"] = "dimension"
    return LookMLField(j)
Exemple #7
0
def test_run3():
    relevant, passed = AllCapsRule().run(LookMLField({'_type': 'junk'}))
    assert not relevant
    assert not passed
Exemple #8
0
def test_run4():
    relevant, passed = DescriptionRule().run(LookMLField({"_type": "junk"}))
    assert not relevant
    assert not passed
Exemple #9
0
def test_run4():
    relevant, passed = DescriptionRule().run(LookMLField({'_type': 'junk'}))
    assert not relevant
    assert not passed