def getConfiguration():

    config = json.loads(global_configuration)
    config = Objectifier(config)
    env_config = json.loads(os.environ.get(sys.argv[1]))
    env_config = Objectifier(env_config)
    config = {**config, **env_config}
    return config
Esempio n. 2
0
    def __call__(self, method='GET', base=None, **kwargs):
        resource = "/".join(self.endpoint_components)

        if base is None:
            base = self.base

        if 'oauth_verifier' in kwargs or 'oauth_callback' in kwargs:
            url = "{}{}".format(base, resource)
        else:
            url = "{}1/{}.json".format(base, resource)

        signing_params = PARAMS()
        signing_params.update(kwargs)

        if self.token:
            signing_params['oauth_token'] = self.token

        base_string = generate_base_string(method, url, signing_params)

        header_params = {}
        query_params = {}
        for key, value in signing_params.iteritems():
            if key.startswith("oauth_"):
                header_params[key] = urllib.quote(value, safe='')
            else:
                query_params[key] = urllib.quote(value, safe='')

        signature = generate_signature(base_string, self.secret)
        header_params['oauth_signature'] = urllib.quote_plus(signature)
        auth_string = ', '.join(
            ['%s="%s"' % (k, v) for k, v in header_params.iteritems()])
        headers = {'Authorization': 'OAuth {}'.format(auth_string)}

        kwargs = {'headers': headers}
        if method == 'POST':
            request_method = requests.post
            kwargs['data'] = "&".join(
                ["{}={}".format(k, v) for k, v in query_params.iteritems()])
        else:
            request_method = requests.get
            kwargs['params'] = query_params

        response = request_method(url, **kwargs)
        if 'text/html' in response.headers['content-type']:
            return Objectifier(urlparse.parse_qsl(response.text))

        response = Objectifier(response.text)

        if 'error' in response:
            raise TwitterError(response.error)

        return response
Esempio n. 3
0
 def test_list_of_tuples(self):
     obj = Objectifier([('a', 1), ('b', 2)])
     self.assertTrue('<Objectifier#dict' in repr(obj))
     self.assertTrue('a=int' in repr(obj))
     self.assertTrue('b=int' in repr(obj))
     self.assertEqual(obj.a, 1)
     self.assertEqual(obj.b, 2)
Esempio n. 4
0
def register_client():
    """
        {
            "host":"",
            "user":"",
            "password":"",
            "domain":""
        }
    """
    
    data_object = Objectifier(request.get_json())
    conn = sqlite3.connect("data.db")
    cur = conn.cursor()
    cur.execute("select id from hosts where HostName = ?", (data_object.host,) )
    id = cur.fetchall()
    if(id.__len__()==0):
        id = str (uuid1())
        cur.execute("insert into hosts values(?,?,?)",(id, data_object.host , datetime.now() ) )
        conn.commit()
        cur.execute("insert into cred values (?,?,?,?)",( id , data_object.domain , data_object.user , data_object.password) )
        conn.commit()
        conn.close()
        return jsonify({"id":id})
    else:
        query_data = request.get_json()
        query_data.pop('host')
        for items in query_data.keys():
            cur.execute("update cred set "+items+"=? where id = ?", (str(query_data[items]) , id[0][0]) )
        if(cur.rowcount ==0):
            cur.execute("insert into cred values (?,?,?,?)",( id[0][0] , data_object.domain , data_object.user , data_object.password) )
        conn.commit()                    
        conn.close()
        return jsonify({"id":id[0][0]})
Esempio n. 5
0
 def test_dict_2(self):
     obj = Objectifier({'a': 1, 'b': 'c'})
     self.assertTrue('<Objectifier#dict' in repr(obj))
     self.assertTrue('a=int' in repr(obj))
     self.assertTrue('b=str' in repr(obj))
     self.assertEqual(obj.a, 1)
     self.assertEqual(obj.b, 'c')
Esempio n. 6
0
 def test_list_of_dicts_2(self):
     obj = Objectifier([{'a': 1, 'b': 2}, {'c': 3, 'd': 4}])
     self.assertEqual(repr(obj), '<Objectifier#list elements:2>')
     self.assertEqual(obj[0].a, 1)
     self.assertEqual(obj[0].b, 2)
     self.assertEqual(obj[1].c, 3)
     self.assertEqual(obj[1].d, 4)
Esempio n. 7
0
 def test_tuple_of_tuples(self):
     obj = Objectifier((('abc', 'def'), ('ghi', 'jkl')))
     self.assertEqual(repr(obj), '<Objectifier#list elements:2>')
     self.assertEqual(obj[0][0], 'abc')
     self.assertEqual(obj[0][1], 'def')
     self.assertEqual(obj[1][0], 'ghi')
     self.assertEqual(obj[1][1], 'jkl')
Esempio n. 8
0
def run():
    config = json.load(open('satellite_config.json'))
    config = Objectifier(config)
    config.RMQ.queue = socket.gethostname()
    DB = file_db(config.database)
    credentials = pika.PlainCredentials(config.RMQ.user, config.RMQ.password)
    logger = satlog.get_logger("SATELLITE")
    return config, DB, credentials, logger
Esempio n. 9
0
 def test_dict_3(self):
     obj = Objectifier({'a': 1, 'b': {'c': 2, 'd': {'e': [3, {'f': 4}]}}})
     self.assertTrue('<Objectifier#dict' in repr(obj))
     self.assertTrue('a=int' in repr(obj))
     self.assertTrue('b=dict' in repr(obj))
     self.assertEqual(obj.a, 1)
     self.assertEqual(obj.b.c, 2)
     self.assertEqual(obj.b.d.e[0], 3)
     self.assertEqual(obj.b.d.e[1].f, 4)
Esempio n. 10
0
 def test_json_2(self):
     people_json = """
         {
             "People": {
                 "Person": [
                     { "Name": "Marc", "Age": 37 },
                     { "Name": "Zach", "Age": 3 }
                 ]
             }
         }
         """.strip()
     obj = Objectifier(people_json)
     self.assertEqual(repr(obj), '<Objectifier#dict People=dict>')
     self.assertEqual(obj.People.Person[0].Name, 'Marc')
Esempio n. 11
0
def main():
    config_selector= sys.argv[1]
    config= json.loads(os.environ.get(config_selector))
    os.environ['config']=os.environ.get(config_selector)
    print(os.environ['config'])
    config=Objectifier(config)
    import releases
    import aha_zen_adapter
    import aha_zen_master_feature_importer
    releases.main()
    feature_update=aha_zen_adapter.main()

    slack_sender.send_message('Features Sync happened @ '+str(datetime.now())+ ' logs @ ' +upload_to_storage(feature_update), config.slack_channel)
    master_feature_update=aha_zen_master_feature_importer.main()
    slack_sender.send_message('Master Features Sync happened @ '+str(datetime.now())+ ' logs @ ' +upload_to_storage(master_feature_update), config.slack_channel)
def get_token_by_session():
    cookies = {
        'session_id_sharebox':
        '171.78.173.132-bfa1076e-d6e8-403a-a5c9-00e05785185d',
    }

    headers = {
        'Connection': 'keep-alive',
        'Pragma': 'no-cache',
        'Cache-Control': 'no-cache',
        'Accept': 'application/json, text/javascript, */*; q=0.01',
        'X-Requested-With': 'XMLHttpRequest',
        'User-Agent':
        'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36',
        'Sec-Fetch-Site': 'same-origin',
        'Sec-Fetch-Mode': 'cors',
        'Referer':
        'https://ec2-13-232-224-131.ap-south-1.compute.amazonaws.com/sharebox/token/generate_token',
        'Accept-Encoding': 'gzip, deflate, br',
        'Accept-Language': 'en-US,en;q=0.9,ta-IN;q=0.8,ta;q=0.7',
    }

    response = rq.get(
        'https://ec2-13-232-224-131.ap-south-1.compute.amazonaws.com/sharebox/api/token',
        headers=headers,
        cookies=cookies,
        verify=False)
    if (response.status_code == 200):
        token_data = json.loads(response.text)
        token_data = json.loads(token_data)
        token = token_data[0]['token']
        config_data = json.load(open('testconfig.json'))
        config_data['token'] = token
        json.dump(config_data, open('testconfig.json', 'w+'))
        global test_configs
        test_configs = Objectifier(json.load(open('testconfig.json')))

        return True
    return False
Esempio n. 13
0
 def test_list_of_dicts_1(self):
     obj = Objectifier([{'a': 1}, {'b': 2}])
     self.assertEqual(repr(obj), '<Objectifier#list elements:2>')
     self.assertEqual(obj[0].a, 1)
     self.assertEqual(obj[1].b, 2)
Esempio n. 14
0
 def test_str_1(self):
     obj = Objectifier('abc')
     self.assertEqual(repr(obj), '<Objectifier#list elements:3>')
     self.assertEqual(obj[0], 'a')
     self.assertEqual(obj[1], 'b')
     self.assertEqual(obj[2], 'c')
Esempio n. 15
0
 def test_list_of_strings(self):
     obj = Objectifier(['a', 'b'])
     self.assertEqual(repr(obj), '<Objectifier#list elements:2>')
     self.assertEqual(obj[0], 'a')
     self.assertEqual(obj[1], 'b')
Esempio n. 16
0
class FacebookCall(object):
    """
    Abstract object that helps create a clean object-based interface to the
    Facebook Graph API.
    """
    def __init__(self, token, endpoint_components, use_objectifier=False):
        self.token = token
        self.endpoint_components = endpoint_components
        self.use_objectifier = use_objectifier

    def __getattr__(self, k):
        self.endpoint_components.append(k)
        return FacebookCall(self.token, self.endpoint_components)

    def __getitem__(self, k):
        self.endpoint_components.append(str(k))
        return FacebookCall(self.token, self.endpoint_components)

    def __call__(self, method='GET', **kwargs):
        endpoint = "/".join(self.endpoint_components)

        if self.token is None:
            kwargs.update(settings.ACCESS_TOKEN_PARAMS)
        else:
            kwargs['access_token'] = self.token

        # Format dats with Unix timestamps instead of ISO-8601.
        # kwargs['date_format'] = 'U'
        encoded_params = urllib.urlencode(kwargs)

        url = API_BASE + endpoint
        if method == 'GET':
            url += "?" + encoded_params
            request = urllib2.Request(url)
        elif method == 'POST':
            request = urllib2.Request(url, encoded_params)
        elif method == 'DELETE':
            request = urllib2.Request(url, encoded_params)
            request.get_method = lambda: 'DELETE'

        try:
            response = urllib2.urlopen(request)
        except urllib2.HTTPError, e:
            data = json.load(e)
            if 'error' in data:
                err = data['error']['type']
                message = data['error']['message']
            elif 'error_code' in data:
                err = data['error_code']
                message = data['error_msg']
            raise FacebookError(message=message, err=err, code=e.code)

        data = response.read()

        if 'text/plain' in response.headers['content-type']:
            if self.use_objectifier:
                return Objectifier(cgi.parse_qsl(data))
            else:
                return dict(cgi.parse_qsl(data))

        try:
            if self.use_objectifier:
                response_obj = Objectifier(data)
            else:
                response_obj = json.loads(data)
        except ValueError:
            return data

        try:
            if 'error' in response_obj:
                if self.use_objectifier:
                    raise FacebookError(message=response_obj.error.message,
                            err=response_obj.error.type, code=response.code)
                else:
                    raise FacebookError(message=response_obj['error']['message'],
                            err=response_obj['error']['type'], code=response['code'])
        except TypeError:
            # Response was probably a bool
            pass

        return response_obj
Esempio n. 17
0
 def test_list_of_ints(self):
     obj = Objectifier([1, 2])
     self.assertEqual(repr(obj), '<Objectifier#list elements:2>')
     self.assertEqual(obj[0], 1)
     self.assertEqual(obj[1], 2)
import aha_zen_adapter
import aha_zen_master_feature_importer
import slack_sender
import requests
from datetime import datetime
import sys
from objectifier import Objectifier
import json
import os
config = json.loads(os.environ.get('config'))
config = Objectifier(config)
import releases


def upload_to_storage(data):
    rs = requests.post('https://funteam.herokuapp.com/insertresults',
                       data=str(data) + '     \n This Ran @ : ' +
                       str(datetime.now()))
    if (rs.status_code == 200):
        return 'https://funteam.herokuapp.com/getautomationresults?key=' + str(
            rs.text)

    else:
        return ''


releases.main()
feature_update = aha_zen_adapter.main()

slack_sender.send_message(
    'Features Sync happened @ ' + str(datetime.now()) + ' logs @ ' +
Esempio n. 19
0
 def test_dict_3(self):
     obj = Objectifier({'a': 1, 'b': {'c': 2}})
     self.assertEqual(repr(obj), '<Objectifier#dict a=int b=dict>')
     self.assertEqual(obj.a, 1)
     self.assertEqual(obj.b.c, 2)
Esempio n. 20
0
 def test_tuple_empty(self):
     obj = Objectifier(())
     self.assertEqual(repr(obj), '<Objectifier#list elements:0>')
Esempio n. 21
0
import pytest
import transactions as txn
from objectifier import Objectifier
import json
from filehash import FileHash
from uuid import uuid4
import csv
from datetime import datetime
import os
import socket

config = Objectifier(json.load(open('Test/testconfig.json')))


class TestMilestone1():
    def setup_method(self):
        self.test_suite_name = os.environ['test_selector']
        self.status = 'Fail'
        self.status = 'Fail'
        md5 = FileHash('sha1')
        self.chksum = md5.hash_file('Test/Milestone1BTests.py')
        location_of_config = config.TEST_DATA.milestone_1b.app_config_location
        server_side_conf = json.load(open(location_of_config))
        self.servers = server_side_conf['peers']
        if (self.servers.__len__() != set(self.servers).__len__()):
            assert 1 == 0, """The configured Peers in your config are not unique.
             Each entry of the configured peer must be unique
             {0}
            """.format(self.servers)
            raise """The configured Peers in your config are not unique.
             Each entry of the configured peer must be unique
Esempio n. 22
0
 def test_str_empty(self):
     obj = Objectifier('')
     self.assertEqual(repr(obj), '<Objectifier#list elements:0>')
Esempio n. 23
0
 def test_objectify_books_xml(self):
     obj = Objectifier(self.get_books_xml())
     self.assertEqual(repr(obj), '<Objectifier#dict Books=dict>')
     self.assertEqual(obj.Books.Items.Item[0].ISBN, '0321558235')
     self.assertEqual(obj.Books.Items.Item[1].ISBN, '9780321558237')
Esempio n. 24
0
 def test_objectify_people_xml(self):
     obj = Objectifier(self.get_people_xml())
     self.assertEqual(repr(obj), '<Objectifier#dict People=dict>')
     self.assertEqual(obj.People.Person[0].Name, 'Marc')
Esempio n. 25
0
 def test_tuple_1(self):
     obj = Objectifier(('abc', 'def'))
     self.assertEqual(repr(obj), '<Objectifier#list elements:2>')
     self.assertEqual(obj[0], 'abc')
     self.assertEqual(obj[1], 'def')
Esempio n. 26
0
def generatediff(Aha_feature, Zen_issue, Git_issue=None, repo_id=None):
    zen = Objectifier(Zen_issue)
    Aha = Objectifier(Aha_feature)
    changes = []
    try:
        if (Aha.workflow_status.name != getTranslationData(
                map_data, zen.pipeline.name) and getTranslationData(
                    map_data, zen.pipeline.name) is not None):
            changes.append({
                'workflow_status': {
                    "name": getTranslationData(map_data, zen.pipeline.name)
                }
            })
        if (zen.estimate is not None):
            if (Aha.original_estimate != zen.estimate.value):
                changes.append({'original_estimate':
                                zen.estimate.value})  # Update Estimate
        if (zen.is_epic == False):
            try:
                Aha_Epic = Aha.master_feature.reference_num
            except:
                Aha_Epic = None
            try:
                Zen_Epic = ENDURANCE[str(EPIC_MAP[zen.id])]['aha_ref_num']
            except:
                Zen_Epic = None
            try:
                if (Aha_Epic != Zen_Epic and Zen_Epic is not None):
                    changes.append({'master_feature': Zen_Epic})
            except:
                logger.error(
                    "Error occured during processing Master feature update")
            ####Updating start and end date as per release date:
            try:
                if (Aha.release is not None
                        and config.features_source_of_release_date.lower()
                        == 'zenhub'):
                    if (Aha.release.start_date != Aha.start_date):
                        changes.append({'start_date': Aha.release.start_date})
                    if (Aha.release.release_date != Aha.due_date):
                        changes.append({'due_date': Aha.release.release_date})
                elif (config.features_source_of_release_date.lower()
                      == 'github' and Git_issue is not None
                      and Git_issue.milestone is not None):
                    start_date_from_Zen = get_milestone_start_date_from_zen(
                        repo_id, Git_issue.milestone.number).split('T')[0]
                    due_date_from_Zen = str(Git_issue.milestone.due_on.date())
                    if (Aha.start_date != start_date_from_Zen):
                        changes.append({'start_date': start_date_from_Zen})
                    if (Aha.due_date != due_date_from_Zen):
                        changes.append({
                            'due_date':
                            str(Git_issue.milestone.due_on.date())
                        })
            except:
                logger.error(
                    "Error occured during start date and due date update")
            ############################################

            ###### Handle Releases######################
            try:
                Release_in_ZH = ZH_ISSUE_RELEASE_MAP[
                    zen.id]  # ZH's Release ID for this Issue
                Release_in_AHA = Aha.release.id  # Aha's Release ID

                Translation = ENDURANCE_RELEASES[Release_in_ZH]
                if (Release_in_AHA != Translation['aha_release_id']):
                    changes.append({'release': Translation['aha_release_id']})
            except KeyError:
                logger.error(
                    "Unable to Find respective ZH release on the Endurance or the release is not mapped to the feature on ZH"
                )

            ######################

    except Exception as e:
        logger.error("Error was encountered during update ")
    return changes
Esempio n. 27
0
 def test_objectify_chegg_xml(self):
     obj = Objectifier(self.get_chegg_xml())
     self.assertEqual(repr(obj), '<Objectifier#dict CheggProductPricing=dict>')
     self.assertEqual(obj.CheggProductPricing.Items.Item[0].BiblioId, '15536985')
     self.assertEqual(obj.CheggProductPricing.Items.Item[1].BiblioId, '16432444')
import json
from objectifier import Objectifier
import requests as rq
import os

test_configs = Objectifier(json.load(open('testconfig.json')))


def upload_a_file(file, token=test_configs.token):
    rs = rq.post(url=test_configs.SHAREBOX_URL + '/upload?token=' +
                 test_configs.token,
                 json=file,
                 verify=False)
    return rs


def get_upload_status(file_id, token=test_configs.token):
    rs = rq.get(url=test_configs.SHAREBOX_URL + '/upload?token=' +
                test_configs.token + "&fileId=" + file_id,
                verify=False)
    return rs


def update_upload_status(data, token=test_configs.token):
    rs = rq.put(url=test_configs.SHAREBOX_URL + '/upload?token=' +
                test_configs.token,
                data=data,
                verify=False)
    return rs