EastAgile / robber.py

BDD / TDD assertion library for Python
MIT License
8 stars 1 forks source link

Extend current architecture to support the plugins #64

Open hieueastagile opened 7 years ago

hieueastagile commented 7 years ago

Currently, the framework do not support the plugin architectures, all changes needed must be implemented in robber.py main repository. This leads to the issue that the detail implementation would be very messy if it needs to handle multiple kind of data structure, and the extensibility of the project is limited.

For example, for eq matcher, the explanation should need to deal specifically with dict, list, and if we want to extend the framework to handle new kind of data structure (pandas' DataFrame for example), it would be very painful.

So, I think we might need another flexible architecture to address this issue, and it could be the 2nd version of robber.py, which the plugins can be implemented in our own repo. What do you guys think? Is there any possible solutions? The idea is that the framework should do something similar to rspec in Rails, they have rspec-core (for builtin data structure), then for each of special case, they have other plugins to handle it, ex: rspec-mock?

hieueastagile commented 7 years ago

@catriuspham @NhanHo @nhanb @steadykhoi @anhhuy165 @hotay

catriuspham commented 7 years ago

I have a plan to init django-robber soon, as guiding @loctvEA around with his BookStore, I have quite a few expectations to implement.

hieueastagile commented 7 years ago

@catriuspham Ok, please suggest a name for a new project, I can implement the new architecture there pretty soon

catriuspham commented 7 years ago

@hieueastagile If it's about a name to replace robber, I'm thinking of suppose which is a synonym of expect. Then we can have suppose-django, suppose-mock...