def test_configure():
    # Mock info method
    magic.info = MagicMock()

    # Session not started
    conf.override_all({})
    magic.configure('', '{"extra": "yes"}')
    assert_equals(conf.session_configs(), {"extra": "yes"})
    _assert_magic_successful_event_emitted_once('configure')
    magic.info.assert_called_once_with("")

    # Session started - no -f
    magic.session_started = True
    conf.override_all({})
    magic.configure('', "{\"extra\": \"yes\"}")
    assert_equals(conf.session_configs(), {})
    assert_equals(ipython_display.send_error.call_count, 1)

    # Session started - with -f
    magic.info.reset_mock()
    conf.override_all({})
    magic.configure("-f", "{\"extra\": \"yes\"}")
    assert_equals(conf.session_configs(), {"extra": "yes"})
    spark_controller.delete_session_by_name.assert_called_once_with(magic.session_name)
    spark_controller.add_session.assert_called_once_with(magic.session_name, magic.endpoint, False,
                                                         {"kind": constants.SESSION_KIND_PYSPARK, "extra": "yes"})
    magic.info.assert_called_once_with("")
def test_configure():
    # Mock info method
    magic.info = MagicMock()

    # Session not started
    conf.override_all({})
    magic.configure('', '{"extra": "yes"}')
    assert_equals(conf.session_configs(), {"extra": "yes"})
    _assert_magic_successful_event_emitted_once('configure')
    magic.info.assert_called_once_with("")

    # Session started - no -f
    magic.session_started = True
    conf.override_all({})
    magic.configure('', "{\"extra\": \"yes\"}")
    assert_equals(conf.session_configs(), {})
    assert_equals(ipython_display.send_error.call_count, 1)

    # Session started - with -f
    magic.info.reset_mock()
    conf.override_all({})
    magic.configure("-f", "{\"extra\": \"yes\"}")
    assert_equals(conf.session_configs(), {"extra": "yes"})
    spark_controller.delete_session_by_name.assert_called_once_with(magic.session_name)
    spark_controller.add_session.assert_called_once_with(magic.session_name, magic.endpoint, False,
                                                         {"kind": constants.SESSION_KIND_PYSPARK, "extra": "yes"})
    magic.info.assert_called_once_with("")
Esempio n. 3
0
    def __init__(self, spark_controller, ipywidget_factory, ipython_display,
                 endpoints_dropdown_widget, refresh_method):
        # This is nested
        super(CreateSessionWidget,
              self).__init__(spark_controller, ipywidget_factory,
                             ipython_display, True)

        self.refresh_method = refresh_method

        self.endpoints_dropdown_widget = endpoints_dropdown_widget

        self.session_widget = self.ipywidget_factory.get_text(
            description='Name:', value='session-name')
        self.lang_widget = self.ipywidget_factory.get_toggle_buttons(
            description='Language:',
            options=[LANG_SCALA, LANG_PYTHON, LANG_PYTHON3],
        )
        self.properties = self.ipywidget_factory.get_text(
            description='Properties:',
            value=json.dumps(conf.session_configs()))
        self.submit_widget = self.ipywidget_factory.get_submit_button(
            description='Create Session')

        self.children = [
            self.ipywidget_factory.get_html(value="<br/>", width="600px"),
            self.endpoints_dropdown_widget, self.session_widget,
            self.lang_widget, self.properties,
            self.ipywidget_factory.get_html(value="<br/>",
                                            width="600px"), self.submit_widget
        ]

        for child in self.children:
            child.parent_widget = self
    def __init__(self, spark_controller, ipywidget_factory, ipython_display, endpoints_dropdown_widget, refresh_method):
        # This is nested
        super(CreateSessionWidget, self).__init__(spark_controller, ipywidget_factory, ipython_display, True)

        self.refresh_method = refresh_method

        self.endpoints_dropdown_widget = endpoints_dropdown_widget

        self.session_widget = self.ipywidget_factory.get_text(description="Name:", value="session-name")
        self.lang_widget = self.ipywidget_factory.get_toggle_buttons(
            description="Language:", options=[LANG_SCALA, LANG_PYTHON]
        )
        self.properties = self.ipywidget_factory.get_text(
            description="Properties:", value=json.dumps(conf.session_configs())
        )
        self.submit_widget = self.ipywidget_factory.get_submit_button(description="Create Session")

        self.children = [
            self.ipywidget_factory.get_html(value="<br/>", width="600px"),
            self.endpoints_dropdown_widget,
            self.session_widget,
            self.lang_widget,
            self.properties,
            self.ipywidget_factory.get_html(value="<br/>", width="600px"),
            self.submit_widget,
        ]

        for child in self.children:
            child.parent_widget = self
Esempio n. 5
0
    def _print_local_info(self):
        sessions_info = ["        {}".format(i) for i in self.spark_controller.get_manager_sessions_str()]
        print("""Info for running Spark:
    Sessions:
{}
    Session configs:
        {}
""".format("\n".join(sessions_info), conf.session_configs()))
    def _print_local_info(self):
        sessions_info = ["        {}".format(i) for i in self.spark_controller.get_manager_sessions_str()]
        print("""Info for running Spark:
    Sessions:
{}
    Session configs:
        {}
""".format("\n".join(sessions_info), conf.session_configs()))
def test_add_sessions_command_extra_properties():
    conf.override_all({})
    magic.spark("config", "{\"extra\": \"yes\"}")
    assert conf.session_configs() == {"extra": "yes"}

    add_sessions_mock = MagicMock()
    spark_controller.add_session = add_sessions_mock
    command = "add"
    name = "-s name"
    language = "-l scala"
    connection_string = "-u http://livyendpoint.com"
    line = " ".join([command, name, language, connection_string])

    magic.spark(line)

    add_sessions_mock.assert_called_once_with("name", Endpoint("http://livyendpoint.com", NO_AUTH),
                                              False, {"kind": "spark", "extra": "yes"})
    conf.override_all({})