diff --git a/tests/test_led.robot b/tests/test_led.robot
index e084f09..9097104 100644
--- a/tests/test_led.robot
+++ b/tests/test_led.robot
@@ -18,19 +18,19 @@
 Validate Heartbeat LEDs Test Cases
     [Documentation]   If heartbeat LED exist then execute the test set.
     [Tags]  Validate_Heartbeat_LEDs_Test_Cases
-    ${resp} =   OpenBMC Get Request   /org/openbmc/control/led/heartbeat
+    ${resp}=   OpenBMC Get Request   /org/openbmc/control/led/heartbeat
     Run keyword If  ${resp.status_code} == ${HTTP_OK}   Execute Heartbeat LEDs Test Cases
 
 Validate Identify LEDs Test Cases
     [Documentation]   If identify LED exist then execute the test set.
     [Tags]  Validate_Identify_LEDs_Test_Cases
-    ${resp} =   OpenBMC Get Request   /org/openbmc/control/led/identify
+    ${resp}=   OpenBMC Get Request   /org/openbmc/control/led/identify
     Run keyword If  ${resp.status_code} == ${HTTP_OK}   Execute Identify LEDs Test Cases
 
 Validate Beep LEDs Test Cases
     [Documentation]   If beep LED exist then execute the test set.
     [Tags]  Validate_Beep_LEDs_Test_Cases
-    ${resp} =   OpenBMC Get Request   /org/openbmc/control/led/beep
+    ${resp}=   OpenBMC Get Request   /org/openbmc/control/led/beep
     Run keyword If  ${resp.status_code} == ${HTTP_OK}  Execute Beep LEDs Test Cases
 
 *** Keywords ***
@@ -61,7 +61,7 @@
    ...               Heartbeat LED. The LED state is read again to check if
    ...               the LED is in ON state.
    Set On   heartbeat
-   ${ledstate} =   Get LED State   heartbeat
+   ${ledstate}=   Get LED State   heartbeat
    should be equal as strings   ${ledstate}   On
 
 Turn OFF the Heartbeat LED
@@ -69,7 +69,7 @@
    ...               Heartbeat LED. The LED state is read again to check if
    ...               the LED is in OFF state.
    Set Off   heartbeat
-   ${ledstate} =   Get LED State   heartbeat
+   ${ledstate}=   Get LED State   heartbeat
    should be equal as strings   ${ledstate}   Off
 
 Blink Fast the Heartbeat LED
@@ -82,9 +82,9 @@
    ${ON_VALUE}=   Set Variable   ${0}
    Set Blink Fast   heartbeat
    : FOR   ${INDEX}   IN RANGE   1   ${SAMPLING_FREQUENCY}
-   \   ${ledstate} =   Get LED State   heartbeat
-   \   ${ON_VALUE} =   Set Variable If   '${ledstate}'=='On'   ${ON_VALUE + 1}   ${ON_VALUE}
-   \   ${OFF_VALUE} =   Set Variable If   '${ledstate}'=='Off'   ${OFF_VALUE + 1}   ${OFF_VALUE}
+   \   ${ledstate}=   Get LED State   heartbeat
+   \   ${ON_VALUE}=   Set Variable If   '${ledstate}'=='On'   ${ON_VALUE + 1}   ${ON_VALUE}
+   \   ${OFF_VALUE}=   Set Variable If   '${ledstate}'=='Off'   ${OFF_VALUE + 1}   ${OFF_VALUE}
    should be true   ${ON_VALUE} > ${MIN_TOGGLE_VALUE} and ${OFF_VALUE} > ${MIN_TOGGLE_VALUE}
 
 Blink Slow the Heartbeat LED
@@ -97,9 +97,9 @@
    ${ON_VALUE}=   Set Variable   ${0}
    Set Blink Slow   heartbeat
    : FOR   ${INDEX}   IN RANGE   1   ${SAMPLING_FREQUENCY}
-   \   ${ledstate} =   Get LED State   heartbeat
-   \   ${ON_VALUE} =   Set Variable If   '${ledstate}'=='On'   ${ON_VALUE + 1}   ${ON_VALUE}
-   \   ${OFF_VALUE} =   Set Variable If   '${ledstate}'=='Off'   ${OFF_VALUE + 1}   ${OFF_VALUE}
+   \   ${ledstate}=   Get LED State   heartbeat
+   \   ${ON_VALUE}=   Set Variable If   '${ledstate}'=='On'   ${ON_VALUE + 1}   ${ON_VALUE}
+   \   ${OFF_VALUE}=   Set Variable If   '${ledstate}'=='Off'   ${OFF_VALUE + 1}   ${OFF_VALUE}
    should be true   ${ON_VALUE} > ${MIN_TOGGLE_VALUE} and ${OFF_VALUE} > ${MIN_TOGGLE_VALUE}
 
 Turn ON the Identify LED
@@ -107,7 +107,7 @@
    ...               Identify LED. The LED state is read again to check if
    ...               the LED is in ON state.
    Set On   identify
-   ${ledstate} =   Get LED State   identify
+   ${ledstate}=   Get LED State   identify
    should be equal as strings   ${ledstate}   On
 
 Turn OFF the Identify LED
@@ -115,7 +115,7 @@
    ...               Identify LED. The LED state is read again to check if
    ...               the LED is in OFF state.
    Set Off   identify
-   ${ledstate} =   Get LED State   identify
+   ${ledstate}=   Get LED State   identify
    should be equal as strings   ${ledstate}   Off
 
 Blink Fast the Identify LED
@@ -128,9 +128,9 @@
    ${ON_VALUE}=   Set Variable   ${0}
    Set Blink Fast   identify
    : FOR   ${INDEX}   IN RANGE   1   ${SAMPLING_FREQUENCY}
-   \   ${ledstate} =   Get LED State   identify
-   \   ${ON_VALUE} =   Set Variable If   '${ledstate}'=='On'   ${ON_VALUE + 1}   ${ON_VALUE}
-   \   ${OFF_VALUE} =   Set Variable If   '${ledstate}'=='Off'   ${OFF_VALUE + 1}   ${OFF_VALUE}
+   \   ${ledstate}=   Get LED State   identify
+   \   ${ON_VALUE}=   Set Variable If   '${ledstate}'=='On'   ${ON_VALUE + 1}   ${ON_VALUE}
+   \   ${OFF_VALUE}=   Set Variable If   '${ledstate}'=='Off'   ${OFF_VALUE + 1}   ${OFF_VALUE}
    should be true   ${ON_VALUE} > ${MIN_TOGGLE_VALUE} and ${OFF_VALUE} > ${MIN_TOGGLE_VALUE}
 
 Blink Slow the Identify LED
@@ -143,9 +143,9 @@
    ${ON_VALUE}=   Set Variable   ${0}
    Set Blink Slow   identify
    : FOR   ${INDEX}   IN RANGE   1   ${SAMPLING_FREQUENCY}
-   \   ${ledstate} =   Get LED State   identify
-   \   ${ON_VALUE} =   Set Variable If   '${ledstate}'=='On'   ${ON_VALUE + 1}   ${ON_VALUE}
-   \   ${OFF_VALUE} =   Set Variable If   '${ledstate}'=='Off'   ${OFF_VALUE + 1}   ${OFF_VALUE}
+   \   ${ledstate}=   Get LED State   identify
+   \   ${ON_VALUE}=   Set Variable If   '${ledstate}'=='On'   ${ON_VALUE + 1}   ${ON_VALUE}
+   \   ${OFF_VALUE}=   Set Variable If   '${ledstate}'=='Off'   ${OFF_VALUE + 1}   ${OFF_VALUE}
    should be true   ${ON_VALUE} > ${MIN_TOGGLE_VALUE} and ${OFF_VALUE} > ${MIN_TOGGLE_VALUE}
 
 Turn ON the Beep LED
@@ -153,7 +153,7 @@
    ...               Beep LED. The LED state is read again to check if
    ...               the LED is in ON state.
    Set On   beep
-   ${ledstate} =   Get LED State   beep
+   ${ledstate}=   Get LED State   beep
    should be equal as strings   ${ledstate}   On
 
 Turn OFF the Beep LED
@@ -161,7 +161,7 @@
    ...               Beep LED. The LED state is read again to check if
    ...               the LED is in OFF state.
    Set Off   beep
-   ${ledstate} =   Get LED State   beep
+   ${ledstate}=   Get LED State   beep
    should be equal as strings   ${ledstate}   Off
 
 Blink Fast the Beep LED
@@ -172,12 +172,12 @@
    ...               this testcase to pass.
    ${OFF_VALUE}=   Set Variable   ${0}
    ${ON_VALUE}=   Set Variable   ${0}
-   ${data} =   create dictionary   data=@{EMPTY}
+   ${data}=   create dictionary   data=@{EMPTY}
    Set Blink Fast   beep
    : FOR   ${INDEX}   IN RANGE   1   ${SAMPLING_FREQUENCY}
-   \   ${ledstate} =   Get LED State   beep
-   \   ${ON_VALUE} =   Set Variable If   '${ledstate}'=='On'   ${ON_VALUE + 1}   ${ON_VALUE}
-   \   ${OFF_VALUE} =   Set Variable If   '${ledstate}'=='Off'   ${OFF_VALUE + 1}   ${OFF_VALUE}
+   \   ${ledstate}=   Get LED State   beep
+   \   ${ON_VALUE}=   Set Variable If   '${ledstate}'=='On'   ${ON_VALUE + 1}   ${ON_VALUE}
+   \   ${OFF_VALUE}=   Set Variable If   '${ledstate}'=='Off'   ${OFF_VALUE + 1}   ${OFF_VALUE}
    should be true   ${ON_VALUE} > ${MIN_TOGGLE_VALUE} and ${OFF_VALUE} > ${MIN_TOGGLE_VALUE}
 
 Blink Slow the Beep LED
@@ -190,47 +190,47 @@
    ${ON_VALUE}=   Set Variable   ${0}
    Set Blink Slow   beep
    : FOR   ${INDEX}   IN RANGE   1   ${SAMPLING_FREQUENCY}
-   \   ${ledstate} =   Get LED State   beep
-   \   ${ON_VALUE} =   Set Variable If   '${ledstate}'=='On'   ${ON_VALUE + 1}   ${ON_VALUE}
-   \   ${OFF_VALUE} =   Set Variable If   '${ledstate}'=='Off'   ${OFF_VALUE + 1}   ${OFF_VALUE}
+   \   ${ledstate}=   Get LED State   beep
+   \   ${ON_VALUE}=   Set Variable If   '${ledstate}'=='On'   ${ON_VALUE + 1}   ${ON_VALUE}
+   \   ${OFF_VALUE}=   Set Variable If   '${ledstate}'=='Off'   ${OFF_VALUE + 1}   ${OFF_VALUE}
    should be true   ${ON_VALUE} > ${MIN_TOGGLE_VALUE} and ${OFF_VALUE} > ${MIN_TOGGLE_VALUE}
 
 Get LED State
    [arguments]    ${args}
-   ${data} =   create dictionary   data=@{EMPTY}
-   ${resp} =   OpenBMC Post Request   /org/openbmc/control/led/${args}/action/GetLedState   data=${data}
+   ${data}=   create dictionary   data=@{EMPTY}
+   ${resp}=   OpenBMC Post Request   /org/openbmc/control/led/${args}/action/GetLedState   data=${data}
    should be equal as strings   ${resp.status_code}   ${HTTP_OK}
-   ${json} =   to json   ${resp.content}
+   ${json}=   to json   ${resp.content}
    [return]    ${json['data'][1]}
 
 Set On
    [arguments]    ${args}
-   ${data} =   create dictionary   data=@{EMPTY}
-   ${resp} =   OpenBMC Post Request   /org/openbmc/control/led/${args}/action/setOn   data=${data}
+   ${data}=   create dictionary   data=@{EMPTY}
+   ${resp}=   OpenBMC Post Request   /org/openbmc/control/led/${args}/action/setOn   data=${data}
    should be equal as strings   ${resp.status_code}   ${HTTP_OK}
-   ${json} =   to json   ${resp.content}
+   ${json}=   to json   ${resp.content}
    should be equal as integers   ${json['data']}   0
 
 Set Off
    [arguments]    ${args}
-   ${data} =   create dictionary   data=@{EMPTY}
-   ${resp} =   OpenBMC Post Request   /org/openbmc/control/led/${args}/action/setOff   data=${data}
+   ${data}=   create dictionary   data=@{EMPTY}
+   ${resp}=   OpenBMC Post Request   /org/openbmc/control/led/${args}/action/setOff   data=${data}
    should be equal as strings   ${resp.status_code}   ${HTTP_OK}
-   ${json} =   to json   ${resp.content}
+   ${json}=   to json   ${resp.content}
    should be equal as integers   ${json['data']}   0
 
 Set Blink Fast
    [arguments]    ${args}
-   ${data} =   create dictionary   data=@{EMPTY}
-   ${resp} =   OpenBMC Post Request   /org/openbmc/control/led/${args}/action/setBlinkFast   data=${data}
+   ${data}=   create dictionary   data=@{EMPTY}
+   ${resp}=   OpenBMC Post Request   /org/openbmc/control/led/${args}/action/setBlinkFast   data=${data}
    should be equal as strings   ${resp.status_code}   ${HTTP_OK}
-   ${json} =   to json   ${resp.content}
+   ${json}=   to json   ${resp.content}
    should be equal as integers   ${json['data']}   0
 
 Set Blink Slow
    [arguments]    ${args}
-   ${data} =   create dictionary   data=@{EMPTY}
-   ${resp} =   OpenBMC Post Request   /org/openbmc/control/led/${args}/action/setBlinkSlow   data=${data}
+   ${data}=   create dictionary   data=@{EMPTY}
+   ${resp}=   OpenBMC Post Request   /org/openbmc/control/led/${args}/action/setBlinkSlow   data=${data}
    should be equal as strings   ${resp.status_code}   ${HTTP_OK}
-   ${json} =   to json   ${resp.content}
+   ${json}=   to json   ${resp.content}
    should be equal as integers   ${json['data']}   0
