You are right robotframework is very suitable for web/GUI testing, yet – it’s hardly limited to that. True that the majority of the users (myself including) utilize it mainly for that – and that’s because it is very easy to start with, and has a marvelous layer (library) above the regular Selenium.
Yet, it’s a “framework” (obvious by its name 🙂 – it gives you structure, execution and logging, baked-in flow control, and standardized extensibility. Nothing more, and nothing less.
And that’s the beauty of it – it does not force you to work on GUI projects; on the contrary – you have enough flexibility to do whatever you want. (a guy, in SO I think, was thinking and asking how to control his raspberry pi pins, an overkill to use RF IMHO, yet – a possibility).
I for one, apart from the expected web tests, have separate suites which are testing only json APIs, others – sql, with no graphical part involved. An interface is just an interface, software by definition is data processing – input of data, business rules ran over it, output of data (sometimes “time” is the data :). Apologies for the lyrical deviation from the topic 🙂
My point is – don’t write off robotframework, especially on the premise its heaviest use (and SO questions) is on GUIs. It is highly versatile and powerful; look at the standard libraries (listed on its webpage), and the community ones (in pypy) – this will give you a hint what is users are actually doing with it. There’s a standard telnet library btw, if that’s your thing with the device you’re testing.
Closing thought – I’ve used unittest, pytest, and they are great – for their intended purpose – unit testing, on the code. Really great, but are far too bare-metal for any practical functional, integration or system testing. That’s why there are higher-level frameworks in the first place, right? 🙂
Disclaimer: I’m not affiliated to robotframework in any way, but a heavy (ab)user, and strongly advocate for it in any format I can (stackexchange included:).
Take my words with a grain of salt, my “emotional connection” to it may very well be one of those “everything looks like a nail when you have a hammer” :). Yet, after an year and something of usage, 2000+ integration and e2e tests, 3 different systems and one for-the-fun-of-it site scraper which BizDev now want to use for business purposes (poor them :D), I couldn’t be more happier with my choice of the framework.