Пример #1
0
    def post(self):
        '''
        Updates contact from sent data (contact object at JSON format).
        Sets its status to Trusted.
        '''
        data = self.get_body_as_dict(expectedFields=["url", "key", "name"])

        if data:
            url = data["url"]
            slug = slugify(url)

            contact = ContactManager.getContact(slug)

            if contact:
                contact.state = STATE_TRUSTED
                contact.key = data["key"]
                contact.name = data["name"]
                contact.save()
                self.return_success("Contact trusted.")

            else:
                self.return_failure("No contact for this slug.", 400)

        else:
            self.return_failure("Sent data are incorrects.", 400)
Пример #2
0
    def post(self):
        '''
        Updates contact from sent data (contact object at JSON format).
        Sets its status to Trusted.
        '''
        data = self.get_body_as_dict(expectedFields=["url", "key", "name"])

        if data:
            url = data["url"]
            slug = slugify(url)

            contact = ContactManager.getContact(slug)

            if contact:
                contact.state = STATE_TRUSTED
                contact.key = data["key"]
                contact.name = data["name"]
                contact.save()

                #self.send_picture_to_contact(contact)
                self.return_success("Contact trusted.")

                for websocket_client in websocket_clients:
                    websocket_client.write_message(contact.toJson())

            else:
                self.return_failure("No contact for this slug.", 400)

        else:
            self.return_failure("Sent data are incorrects.", 400)
Пример #3
0
def given_my_contact_is_tagged_with_tag(step, tag):
    data = {
        'tags': [tag]
    }
    world.browser.put(
        "contacts/%s/tags/" % slugify(world.browser2.root_url.decode("utf-8")), 
        body=json_encode(data))
Пример #4
0
def create_a_default_contact(step):
    contact = Contact()
    contact.url = u"http://default:8000/"
    contact.slug = slugify(contact.url)
    contact.state = STATE_TRUSTED
    contact.description = "desc 1"
    contact.name = "default contact 1"
    contact.save()
Пример #5
0
def create_a_default_contact(step):
    contact = Contact()
    contact.url = u"http://default:8000/"
    contact.slug = slugify(contact.url)
    contact.state = STATE_TRUSTED
    contact.description = "desc 1"
    contact.name = "default contact 1"
    contact.save()
Пример #6
0
def i_create_one_contact_with_tag_group1(step, tag):
    contact = Contact(
        url="http://localhost/1/",
        slug=slugify(unicode("http://localhost/1/")),
        state=STATE_PENDING,
        key="key1",
        tags=["all", tag]
    )
    contact.save()
Пример #7
0
def i_create_one_contact_with_tag_group1(step, tag):
    world.browser.post("contacts/tags/", body='{"name":"%s"}' % tag)
    contact = Contact(url="http://localhost/1/",
                      slug=slugify(unicode("http://localhost/1/")),
                      state=STATE_PENDING,
                      key="key1",
                      tags=["all", tag])

    contact.save()
Пример #8
0
def creates_contacts(step):
    contact = Contact()
    contact.url = "http://localhost/1/"
    contact.slug = slugify(contact.url)
    contact.state = STATE_PENDING
    contact.key = "key1"
    contact.save()
    contact2 = Contact()
    contact2.url = "http://localhost/2/"
    contact2.slug = slugify(contact2.url)
    contact2.state = STATE_TRUSTED
    contact2.key = "key2"
    contact2.save()
    contact3 = Contact()
    contact3.url = "http://localhost/3/"
    contact3.slug = slugify(contact3.url)
    contact3.state = STATE_WAIT_APPROVAL
    contact.key = "key3"
    contact3.save()
Пример #9
0
def creates_contacts(step):
    contact = Contact()
    contact.url = "http://localhost/1/"
    contact.slug = slugify(contact.url)
    contact.state = STATE_PENDING
    contact.key = "key1"
    contact.save()
    contact2 = Contact()
    contact2.url = "http://localhost/2/"
    contact2.slug = slugify(contact2.url)
    contact2.state = STATE_TRUSTED
    contact2.key = "key2"
    contact2.save()
    contact3 = Contact()
    contact3.url = "http://localhost/3/"
    contact3.slug = slugify(contact3.url)
    contact3.state = STATE_WAIT_APPROVAL
    contact.key = "key3"
    contact3.save()
Пример #10
0
def i_create_one_contact_with_tag_group1(step, tag):
    world.browser.post("contacts/tags/",
                       body='{"name":"%s"}' % tag)
    contact = Contact(
        url="http://localhost/1/",
        slug=slugify(unicode("http://localhost/1/")),
        state=STATE_PENDING,
        key="key1",
        tags=["all", tag]
    )

    contact.save()
Пример #11
0
def set_default_user():
    reset_documents(Contact, ContactManager.getContacts)
    reset_documents(Contact, ContactManager.getContacts, db2)

    world.browser.set_default_user()
    world.user = world.browser.user
    world.browser2.set_default_user_2(SECOND_NEWEBE_ROOT_URL)
    world.browser.login("password")
    world.browser2.login("password")
    
    world.browser.post("contacts/",
                       body='{"url":"%s"}' % world.browser2.root_url)
    time.sleep(0.3)
    world.browser2.put("contacts/%s/" % slugify(world.browser.root_url.decode("utf-8")), "")
Пример #12
0
def set_default_user():
    reset_documents(Contact, ContactManager.getContacts)
    reset_documents(Contact, ContactManager.getContacts, db2)

    world.browser.set_default_user()
    world.user = world.browser.user
    world.browser2.set_default_user_2(SECOND_NEWEBE_ROOT_URL)
    world.browser.login("password")
    world.browser2.login("password")

    world.browser.post("contacts/all/",
                       body='{"url":"%s"}' % world.browser2.root_url)
    time.sleep(0.3)
    world.browser2.put(
        "contacts/%s/" % slugify(world.browser.root_url.decode("utf-8")), "")
Пример #13
0
    def post(self):
        '''
        Creates a new contact from web client data
        (contact object at JSON format). And send a contact request to the
        newly created contact. State of contact is set to PENDING.
        '''

        logger = logging.getLogger("newebe.contact")

        data = self.get_body_as_dict(["url"])

        if data:
            url = data["url"]
            owner = UserManager.getUser()

            if owner.url != url:
                slug = slugify(url)

                self.contact = Contact(
                  url=url,
                  slug=slug
                )
                self.contact.save()

                try:
                    data = UserManager.getUser().asContact().toJson()

                    client = ContactClient()
                    client.post(self.contact, "contacts/request/",
                                data, self.on_contact_response)

                except Exception:
                    import traceback
                    logger.error("Error on adding contact:\n %s" %
                            traceback.format_exc())

                    self.contact.state = STATE_ERROR
                    self.contact.save()

                return self.return_one_document(self.contact, 201)

            else:
                return self.return_failure(
                        "Wrong data. Url is same as owner URL.", 400)
        else:
            return self.return_failure(
                    "Wrong data. Contact has not been created.", 400)
Пример #14
0
    def post(self):
        '''
        Creates a new contact from web client data
        (contact object at JSON format). And send a contact request to the
        newly created contact. State of contact is set to PENDING.
        '''

        logger = logging.getLogger("newebe.contact")

        data = self.get_body_as_dict(["url"])

        if data:
            url = data["url"]
            owner = UserManager.getUser()

            if owner.url != url:
                slug = slugify(url)

                self.contact = Contact(
                  url=url,
                  slug=slug
                )
                self.contact.save()

                try:
                    data = UserManager.getUser().asContact().toJson()

                    client = ContactClient()
                    client.post(self.contact, "contacts/request/",
                                data, self.on_contact_response)

                except Exception:
                    import traceback
                    logger.error("Error on adding contact:\n %s" %
                        traceback.format_exc())

                    self.contact.state = STATE_ERROR
                    self.contact.save()

            else:
                return self.return_failure(
                        "Wrong data. Url is same as owner URL.", 400)
        else:
            return self.return_failure(
                    "Wrong data. Contact has not been created.", 400)
Пример #15
0
    def post(self):
        '''
        Create a new contact from sent data (contact object at JSON format).
        Sets its status to Wait For Approval
        '''
        data = self.get_body_as_dict(expectedFields=["url"])

        if data:
            url = data["url"]
            owner = UserManager.getUser()

            if owner.url != url:
                slug = slugify(url)

                contact = ContactManager.getContact(slug)
                owner = UserManager.getUser()

                if contact is None:
                    contact = Contact(
                        name=data["name"],
                        url=url,
                        slug=slug,
                        key=data["key"],
                        state=STATE_WAIT_APPROVAL,
                        requestDate=datetime.datetime.utcnow(),
                        description=data["description"]
                    )
                    contact.save()

                contact.state = STATE_WAIT_APPROVAL
                contact.save()

                for websocket_client in websocket_clients:
                    websocket_client.write_message(contact.toJson())

                self.return_success("Request received.")

            else:
                self.return_failure("Contact and owner have same url.")

        else:
            self.return_failure("Sent data are incorrects.")
Пример #16
0
    def post(self):
        '''
        Create a new contact from sent data (contact object at JSON format).
        Sets its status to Wait For Approval
        '''
        data = self.get_body_as_dict(expectedFields=["url"])

        if data:
            url = data["url"]
            owner = UserManager.getUser()

            if owner.url != url:
                slug = slugify(url)

                contact = ContactManager.getContact(slug)
                owner = UserManager.getUser()

                if contact is None:
                    contact = Contact(
                        name=data["name"],
                        url=url,
                        slug=slug,
                        key=data["key"],
                        state=STATE_WAIT_APPROVAL,
                        requestDate=datetime.datetime.utcnow(),
                        description=data["description"]
                    )
                    contact.save()

                contact.state = STATE_WAIT_APPROVAL
                contact.save()

                for websocket_client in websocket_clients:
                    websocket_client.write_message(contact.toJson())

                self.return_success("Request received.")

            else:
                self.return_failure("Contact and owner have same url.")

        else:
            self.return_failure("Sent data are incorrects.")
Пример #17
0
def set_browers():
    reset_documents(Contact, ContactManager.getContacts)
    reset_documents(Contact, ContactManager.getContacts, db2)

    world.browser = NewebeClient()
    world.browser.set_default_user()
    world.browser.login("password")

    try:
        world.browser2 = NewebeClient()
        world.browser2.set_default_user_2(SECOND_NEWEBE_ROOT_URL)
        world.user2 = world.browser2.user
        world.browser2.login("password")

        world.browser.post("contacts/all/",
                       body='{"url":"%s"}' % world.browser2.root_url)
        time.sleep(0.3)
        world.browser2.put("contacts/%s/" % slugify(world.browser.root_url.decode("utf-8")), "")
    except HTTPError:
        print "[WARNING] Second newebe instance does not look started"
Пример #18
0
def set_browers():
    reset_documents(Contact, ContactManager.getContacts)
    reset_documents(Contact, ContactManager.getContacts, db2)

    world.browser = NewebeClient()
    world.browser.set_default_user()
    world.browser.login("password")

    try:
        world.browser2 = NewebeClient()
        world.browser2.set_default_user_2(SECOND_NEWEBE_ROOT_URL)
        world.user2 = world.browser2.user
        world.browser2.login("password")

        world.browser.post("contacts/",
                           body='{"url":"%s"}' % world.browser2.root_url)
        time.sleep(0.3)
        world.browser2.put(
            "contacts/%s" % slugify(world.browser.root_url.decode("utf-8")),
            '{"state":"Trusted"}')
    except HTTPError:
        print "[WARNING] Second newebe instance does not look started"
Пример #19
0
def on_seconde_newebe_confirm_first_newebe_request(step):
    world.browser2.put("contacts/%s/" % slugify(ROOT_URL), "")
Пример #20
0
def checks_that_default_contact_data_are_updated(step):
    contact = ContactManager.getContact(slugify(u"http://default:8000/"))
    assert "http://default:8010/" == contact.url
    assert "default contact 2" == contact.name
    assert "desc 2" == contact.description
Пример #21
0
def change_default_contact_data_through_handlers(step):
    contact = ContactManager.getContact(slugify(u"http://default:8000/"))
    contact.description = "desc 2"
    contact.url = u"http://default:8010/"
    contact.name = "default contact 2"
    world.browser.put("contacts/update-profile/", contact.toJson())
Пример #22
0
def given_my_contact_is_tagged_with_tag(step, tag):
    data = {'tags': [tag]}
    world.browser.put("contacts/%s/tags/" %
                      slugify(world.browser2.root_url.decode("utf-8")),
                      body=json_encode(data))
Пример #23
0
def change_default_contact_data_through_handlers(step):
    contact = ContactManager.getContact(slugify(u"http://default:8000/"))
    contact.description = "desc 2"
    contact.url = u"http://default:8010/"
    contact.name = "default contact 2"
    world.browser.put("contacts/update-profile/", contact.toJson())
Пример #24
0
def checks_that_default_contact_data_are_updated(step):
    contact = ContactManager.getContact(slugify(u"http://default:8000/"))
    assert "http://default:8010/" == contact.url
    assert "default contact 2" == contact.name
    assert "desc 2" == contact.description
Пример #25
0
def convert_http_www_test_net_13200(step):
    world.slug = slugify.slugify(u"http://www.test.net:13200/")
Пример #26
0
def on_seconde_newebe_confirm_first_newebe_request(step):
    world.browser2.put('contacts/%s' % slugify(ROOT_URL),
                       body='{"state":"%s", "tags":null}' % STATE_TRUSTED)
Пример #27
0
def send_a_retry_request_for_this_contact(step):
    world.browser.post("contacts/%s/retry/" % slugify(SECOND_NEWEBE_ROOT_URL),
                       "")
    time.sleep(0.3)
Пример #28
0
def on_seconde_newebe_confirm_first_newebe_request(step):
    world.browser2.put('contacts/%s' % slugify(ROOT_URL),
            body='{"state":"%s", "tags":null}' % STATE_TRUSTED)
Пример #29
0
def convert_http_www_test_net_13200(step):
    world.slug = slugify.slugify(u"http://www.test.net:13200/")
Пример #30
0
def send_a_retry_request_for_this_contact(step):
    world.browser.post("contacts/%s/retry/" % slugify(SECOND_NEWEBE_ROOT_URL),
                       "")
    time.sleep(0.3)
Пример #31
0
def convert_jhon_doe(step):
    world.slug = slugify.slugify(u"Jhon Doe")
Пример #32
0
def convert_jhon_doe(step):
    world.slug = slugify.slugify(u"Jhon Doe")